--- /dev/null
--- /dev/null
++ JAVA_HOME
++
++1. Legacy use of JAVA_HOME
++
++ As of the latest versions of java-common there really should
++ be no need for JAVA_HOME as Java(TM) should be completely
++ integrated with your Debian GNU/Linux system.
++
++
++2. Selecting OpenJDK 7 as the default Java(TM) implementation
++
++ Please see README.alternatives for instructions on how
++ to make OpenJDK 7 executables and man pages the default on your system.
--- /dev/null
--- /dev/null
++java-archive
++ command=/usr/bin/java -jar
++ name=java-archive
++ can_open_multiple_files=false
++ requires_terminal=false
++ mime_types=application/java-archive,application/x-java-archive,application/x-jar
--- /dev/null
--- /dev/null
++application/java-archive
++ description=Java Archive
++ icon_filename=@basename@
++ default_action_type=application
++ default_application_id=java-archive
++ short_list_application_user_additions=java-archive
++application/x-java-archive
++ description=Java Archive
++ icon_filename=@basename@
++ default_action_type=application
++ default_application_id=java-archive
++ short_list_application_user_additions=java-archive
++application/x-jar
++ description=Java Archive
++ icon_filename=@basename@
++ default_action_type=application
++ default_application_id=java-archive
++ short_list_application_user_additions=java-archive
--- /dev/null
--- /dev/null
++application/java-archive
++ ext: jar
++application/x-java-archive
++ ext: jar
++application/x-jar
++ ext: jar
--- /dev/null
--- /dev/null
++# this are pre-stripped binaries (fastdebug)
++@basename@-dbg binary: library-in-debug-or-profile-should-not-be-stripped
++@basename@-dbg binary: debug-file-with-no-debug-symbols
--- /dev/null
--- /dev/null
++?package(@basename@-demo):\
++ needs="x11"\
++ section="Applications/Programming"\
++ title="@vendor@ Java @RELEASE@ FileChooser Demo"\
++ command="/bin/sh -c 'cd /@basedir@/demo/jfc/FileChooserDemo; /@basedir@/bin/java -jar FileChooserDemo.jar'"\
++ icon="/usr/share/pixmaps/@basename@-app.xpm"\
++ hints="Java2"
++
++?package(@basename@-demo):\
++ needs="x11"\
++ section="Applications/Programming"\
++ title="@vendor@ Java @RELEASE@ Font2DTest Demo"\
++ command="/bin/sh -c 'cd /@basedir@/demo/jfc/Font2DTest; /@basedir@/bin/java -jar Font2DTest.jar'"\
++ icon="/usr/share/pixmaps/@basename@-app.xpm"\
++ hints="Java2"
++
++?package(@basename@-demo):\
++ needs="x11"\
++ section="Applications/Programming"\
++ title="@vendor@ Java @RELEASE@ Java 2D Demo"\
++ command="/bin/sh -c 'cd /@basedir@/demo/jfc/Java2D; /@basedir@/bin/java -jar Java2Demo.jar'"\
++ icon="/usr/share/pixmaps/@basename@-app.xpm"\
++ hints="Java2"
++
++?package(@basename@-demo):\
++ needs="x11"\
++ section="Applications/Programming"\
++ title="@vendor@ Java @RELEASE@ SampleTree Demo"\
++ command="/bin/sh -c 'cd /@basedir@/demo/jfc/SampleTree; /@basedir@/bin/java -jar SampleTree.jar'"\
++ icon="/usr/share/pixmaps/@basename@-app.xpm"\
++ hints="Java2"
++
++?package(@basename@-demo):\
++ needs="x11"\
++ section="Applications/Programming"\
++ title="@vendor@ Java @RELEASE@ Stylepad Demo"\
++ command="/bin/sh -c 'cd /@basedir@/demo/jfc/Stylepad; /@basedir@/bin/java -jar Stylepad.jar'"\
++ icon="/usr/share/pixmaps/@basename@-app.xpm"\
++ hints="Java2"
++
++?package(@basename@-demo):\
++ needs="x11"\
++ section="Applications/Programming"\
++ title="@vendor@ Java @RELEASE@ SwingSet2 Demo"\
++ command="/bin/sh -c 'cd /@basedir@/demo/jfc/SwingSet2; /@basedir@/bin/java -jar SwingSet2.jar'"\
++ icon="/usr/share/pixmaps/@basename@-app.xpm"\
++ hints="Java2"
++
++?package(@basename@-demo):\
++ needs="x11"\
++ section="Applications/Programming"\
++ title="@vendor@ Java @RELEASE@ TableExample Demo"\
++ command="/bin/sh -c 'cd /@basedir@/demo/jfc/TableExample; /@basedir@/bin/java -jar TableExample.jar'"\
++ icon="/usr/share/pixmaps/@basename@-app.xpm"\
++ hints="Java2"
--- /dev/null
--- /dev/null
++# jpda/examples.jar only contains source code
++@basename@-demo binary: codeless-jar usr/share/doc/openjdk-7-jre-headless/demo/jpda/examples.jar
++
++# OpenJDK is correct despite any Debian policy
++@basename@-demo binary: unknown-java-class-version
++
++# example jar file with sources and documentation
++@basename@-demo binary: codeless-jar
--- /dev/null
--- /dev/null
++Document: @JDK@-doc
++Title: @vendor@ Java(TM) @RELEASE@ JDK, Standard Edition Documentation
++Author: @vendor@
++Abstract: The Java @RELEASE@ Platform Documentation contains API specifications,
++ feature descriptions, developer guides, reference pages for JDK tools
++ and utilities, demos, and links to related information.
++Section: Programming
++
++Format: HTML
++Index: /usr/share/doc/@basename@-jre-headless/api/index.html
++Files: /usr/share/doc/@basename@-jre-headless/api/*/*.html
--- /dev/null
--- /dev/null
++category truetype
++
++# Sans
++
++begin /usr/share/fonts/truetype/ttf-lucida/LucidaSansRegular.ttf
++ Family = LucidaSans
++ FontName = LucidaSans
++ Encoding = Unicode
++ Location = English
++ Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
++ UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
++ GeneralFamily = SansSerif
++ Weight = Book
++ Width = Variable
++ Shape = NoSerif Upright
++ Foundry = Lucida
++ Priority = 15
++end
++
++begin /usr/share/fonts/truetype/ttf-lucida/LucidaSansDemiBold.ttf
++ Family = LucidaSans
++ FontName = LucidaSans-Demibold
++ Encoding = Unicode
++ Location = English
++ Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
++ UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
++ GeneralFamily = SansSerif
++ Weight = Bold
++ Width = Variable
++ Shape = NoSerif Upright
++ Foundry = Lucida
++ Priority = 15
++end
++
++begin /usr/share/fonts/truetype/ttf-lucida/LucidaSansOblique.ttf
++ Family = LucidaSans
++ FontName = LucidaSans-Oblique
++ Encoding = Unicode
++ Location = English
++ Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
++ UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
++ GeneralFamily = SansSerif
++ Weight = Thin
++ Width = Variable
++ Shape = NoSerif Oblique
++ Foundry = Lucida
++ Priority = 15
++end
++
++begin /usr/share/fonts/truetype/ttf-lucida/LucidaSansDemiOblique.ttf
++ Family = LucidaSans
++ FontName = LucidaSans-Demibold-Oblique
++ Encoding = Unicode
++ Location = English
++ Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
++ UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
++ GeneralFamily = SansSerif
++ Weight = Bold
++ Width = Variable
++ Shape = NoSerif Oblique
++ Foundry = Lucida
++ Priority = 15
++end
++
++# Serif
++
++begin /usr/share/fonts/truetype/ttf-lucida/LucidaBrightRegular.ttf
++ Family = LucidaBright
++ FontName = LucidaBright-Regular
++ Encoding = Unicode
++ Location = English
++ Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
++ UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
++ GeneralFamily = Roman
++ Weight = Book
++ Width = Variable
++ Shape = NoSerif Upright
++ Foundry = Lucida
++ Priority = 15
++end
++
++begin /usr/share/fonts/truetype/ttf-lucida/LucidaBrightItalic.ttf
++ Family = LucidaBright
++ FontName = LucidaBright-Italic
++ Encoding = Unicode
++ Location = English
++ Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
++ UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
++ GeneralFamily = Roman
++ Weight = Book
++ Width = Variable
++ Shape = NoSerif Oblique
++ Foundry = Lucida
++ Priority = 15
++end
++
++begin /usr/share/fonts/truetype/ttf-lucida/LucidaBrightDemiBold.ttf
++ Family = Lucida-Bright
++ FontName = Lucida-Bright-Demi
++ Encoding = Unicode
++ Location = English
++ Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
++ UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
++ GeneralFamily = Roman
++ Weight = Bold
++ Width = Variable
++ Shape = NoSerif Upright
++ Foundry = Lucida
++ Priority = 15
++end
++
++begin /usr/share/fonts/truetype/ttf-lucida/LucidaBrightDemiItalic.ttf
++ Family = Lucida-Bright
++ FontName = Lucida-Bright-DemiItalic
++ Encoding = Unicode
++ Location = English
++ Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
++ UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
++ GeneralFamily = Roman
++ Weight = Demi
++ Width = Variable
++ Shape = NoSerif Oblique
++ Foundry = Lucida
++ Priority = 15
++end
++
++# Mono
++
++begin /usr/share/fonts/truetype/ttf-lucida/LucidaTypewriterRegular.ttf
++ Family = LucidaSans-Typewriter
++ FontName = LucidaSans-Typewriter
++ Encoding = Unicode
++ Location = English
++ Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
++ UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
++ GeneralFamily = Typewriter
++ Weight = Book
++ Width = Fixed
++ Shape = NoSerif Upright
++ Foundry = Lucida
++ Priority = 15
++end
++
++begin /usr/share/fonts/truetype/ttf-lucida/LucidaTypewriterOblique.ttf
++ Family = LucidaSans-Typewriter
++ FontName = LucidaSans-Typewriter-Oblique
++ Encoding = Unicode
++ Location = English
++ Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
++ UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
++ GeneralFamily = Typewriter
++ Weight = Book
++ Width = Fixed
++ Shape = NoSerif Oblique
++ Foundry = Lucida
++ Priority = 15
++end
++
++begin /usr/share/fonts/truetype/ttf-lucida/LucidaTypewriterBold.ttf
++ Family = LucidaSans-Typewriter
++ FontName = LucidaSans-Typewriter-Bold
++ Encoding = Unicode
++ Location = English
++ Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
++ UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
++ GeneralFamily = Typewriter
++ Weight = Bold
++ Width = Fixed
++ Shape = NoSerif Upright
++ Foundry = Lucida
++ Priority = 15
++end
++
++begin /usr/share/fonts/truetype/ttf-lucida/LucidaTypewriterBoldOblique.ttf
++ Family = LucidaSans-Typewriter
++ FontName = LucidaSans-Typewriter-Bold-Oblique
++ Encoding = Unicode
++ Location = English
++ Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
++ UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
++ GeneralFamily = Typewriter
++ Weight = Bold
++ Width = Fixed
++ Shape = NoSerif Oblique
++ Foundry = Lucida
++ Priority = 15
++end
--- /dev/null
--- /dev/null
++[Desktop Entry]
++Name=@vendor@ Java @RELEASE@ Runtime
++Name[fi]=@vendor@ Java @RELEASE@ - ajonaikainen ympäristö
++Comment=@vendor@ Java @RELEASE@ Runtime
++Comment[fi]=@vendor@ Java @RELEASE@ - ajonaikainen ympäristö
++Keywords=java;runtime
++Exec=@java_launcher@ -jar
++Terminal=false
++Type=Application
++Icon=@basename@
++MimeType=application/x-java-archive;application/java-archive;application/x-jar;
++NoDisplay=true
--- /dev/null
--- /dev/null
++[Desktop Entry]
++Name=@vendor@ Java @RELEASE@ Console
++Name[fi]=@vendor@ Java @RELEASE@ - konsoli
++Comment=@vendor@ Java @RELEASE@ Monitoring & Management Console
++Comment[fi]=@vendor@ Java @RELEASE@ - valvonta- ja hallintakonsoli
++Keywords=java;console;monitoring
++Exec=/usr/bin/jconsole
++Terminal=false
++Type=Application
++Icon=@basename@
++Categories=Application;System;
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++set -e
++
++multiarch=@multiarch@
++priority=@priority@
++basedir=/@basedir@
++mandir=$basedir/man
++jdiralias=@jdiralias@
++srcext=1.gz
++dstext=1.gz
++jdk_hl_tools='@jdk_hl_tools@'
++
++case "$1" in
++configure)
++ # obsolete tool
++ if update-alternatives --list apt 2>/dev/null; then
++ update-alternatives --remove-all apt || true
++ fi
++
++ if [ -z "$2" ]; then
++ update_alternatives=y
++ fi
++ if [ -n "$multiarch" ] && [ -n "$2" ]; then
++ for i in $jdk_hl_tools; do
++ if [ -z "$(update-alternatives --list $i 2>/dev/null | grep ^$basedir/)" ]; then
++ update_alternatives=y
++ break
++ fi
++ done
++ fi
++ if [ "$update_alternatives" != y ] && [ $priority -gt 1060 ]; then
++ for i in $jre_tools; do
++ oldp=$(update-alternatives --query java | awk -v b=$basedir '/^Alternative:/ && $2~b {p=1} /^Priority:/ && p {print $2; exit}')
++ if [ -n "$oldp" ] && [ "$oldp" -le 1060 ]; then
++ update_alternatives=y
++ break
++ fi
++ done
++ fi
++
++ if [ "$update_alternatives" = y ]; then
++ if [ -n "$multiarch" ] && [ "$DPKG_MAINTSCRIPT_ARCH" != $(dpkg --print-architecture) ]; then
++ priority=$(expr $priority - 1)
++ fi
++ for i in $jdk_hl_tools; do
++ unset slave1 slave2 || true
++ if [ -e $mandir/man1/$i.$srcext ]; then
++ slave1="--slave \
++ /usr/share/man/man1/$i.$dstext \
++ $i.$dstext \
++ $mandir/man1/$i.$srcext"
++ fi
++ if false && [ -e $mandir/ja/man1/$i.$srcext ]; then
++ slave2="--slave \
++ /usr/share/man/ja/man1/$i.$dstext \
++ ${i}_ja.$dstext \
++ $mandir/ja/man1/$i.$srcext"
++ fi
++ update-alternatives \
++ --install \
++ /usr/bin/$i \
++ $i \
++ $basedir/bin/$i \
++ $priority \
++ $slave1 $slave2
++ done
++ fi # update alternatives
++
++ ;;
++esac
++
++#DEBHELPER#
++
++exit 0
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++set -e
++
++multiarch=@multiarch@
++old_basedir=/usr/lib/jvm/java-7-openjdk
++jdk_hl_tools='apt extcheck idlj jar jarsigner javac javadoc javah javap jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic schemagen serialver wsgen wsimport xjc'
++
++case "$1" in
++ upgrade)
++ if [ -n "$multiarch" ] && [ -n "$2" ]; then
++ for i in $jdk_hl_tools; do
++ if [ -n "$(update-alternatives --list $i 2>/dev/null | grep ^$old_basedir/)" ]; then
++ update-alternatives --remove $i $old_basedir/bin/$i || true
++ fi
++ done
++ fi
++ ;;
++esac
++
++#DEBHELPER#
++
++exit 0
--- /dev/null
--- /dev/null
++#!/bin/sh -e
++
++set -e
++
++jdk_hl_tools='@jdk_hl_tools@'
++basedir=/@basedir@
++
++
++if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then
++ for i in $jdk_hl_tools; do
++ update-alternatives --remove $i $basedir/bin/$i
++ done
++fi
++
++#DEBHELPER#
--- /dev/null
--- /dev/null
++?package(@basename@-jdk):\
++ needs="x11"\
++ section="Applications/System/Administration"\
++ title="@vendor@ Java @RELEASE@ Console"\
++ command="/usr/bin/jconsole"\
++ icon="/usr/share/pixmaps/@basename@.xpm"\
++ hints="Java2"
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++set -e
++
++multiarch=@multiarch@
++priority=@priority@
++basedir=/@basedir@
++mandir=$basedir/man
++jdiralias=@jdiralias@
++srcext=1.gz
++dstext=1.gz
++jdk_tools='@jdk_tools@'
++
++case "$1" in
++configure)
++ # obsolete tool
++ if update-alternatives --list apt 2>/dev/null; then
++ update-alternatives --remove-all apt || true
++ fi
++
++ if [ -z "$2" ]; then
++ update_alternatives=y
++ fi
++ if [ -n "$multiarch" ] && [ -n "$2" ]; then
++ for i in $jdk_tools; do
++ if [ -z "$(update-alternatives --list $i 2>/dev/null | grep ^$basedir/)" ]; then
++ update_alternatives=y
++ break
++ fi
++ done
++ fi
++ if [ "$update_alternatives" != y ] && [ $priority -gt 1060 ]; then
++ for i in $jre_tools; do
++ oldp=$(update-alternatives --query java | awk -v b=$basedir '/^Alternative:/ && $2~b {p=1} /^Priority:/ && p {print $2; exit}')
++ if [ -n "$oldp" ] && [ "$oldp" -le 1060 ]; then
++ update_alternatives=y
++ break
++ fi
++ done
++ fi
++
++ if [ "$update_alternatives" = y ]; then
++ if [ -n "$multiarch" ] && [ "$DPKG_MAINTSCRIPT_ARCH" != $(dpkg --print-architecture) ]; then
++ priority=$(expr $priority - 1)
++ fi
++ for i in $jdk_tools; do
++ unset slave1 slave2 || true
++ if [ -e $mandir/man1/$i.$srcext ]; then
++ slave1="--slave \
++ /usr/share/man/man1/$i.$dstext \
++ $i.$dstext \
++ $mandir/man1/$i.$srcext"
++ fi
++ if false && [ -e $mandir/ja/man1/$i.$srcext ]; then
++ slave2="--slave \
++ /usr/share/man/ja/man1/$i.$dstext \
++ ${i}_ja.$dstext \
++ $mandir/ja/man1/$i.$srcext"
++ fi
++ update-alternatives \
++ --install \
++ /usr/bin/$i \
++ $i \
++ $basedir/bin/$i \
++ $priority \
++ $slave1 $slave2
++ done
++ fi # update alternatives
++
++ ;;
++esac
++
++#DEBHELPER#
++
++exit 0
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++set -e
++
++multiarch=@multiarch@
++old_basedir=/usr/lib/jvm/java-7-openjdk
++jdk_tools='appletviewer jconsole'
++
++case "$1" in
++ upgrade)
++ if [ -n "$multiarch" ] && [ -n "$2" ]; then
++ for i in $jdk_tools; do
++ if [ -n "$(update-alternatives --list $i 2>/dev/null | grep ^$old_basedir/)" ]; then
++ update-alternatives --remove $i $old_basedir/bin/$i || true
++ fi
++ done
++ fi
++ ;;
++esac
++
++#DEBHELPER#
++
++exit 0
--- /dev/null
--- /dev/null
++#!/bin/sh -e
++
++set -e
++
++jdk_tools='@jdk_tools@'
++basedir=/@basedir@
++
++
++if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then
++ for i in $jdk_tools; do
++ update-alternatives --remove $i $basedir/bin/$i
++ done
++fi
++
++#DEBHELPER#
--- /dev/null
--- /dev/null
++# empty directory by intent
++@basename@-jre-headless binary: package-contains-empty-directory usr/share/binfmts/
++
++# Strip libjvm.so with --strip-debug instead of --strip-unneeded. LP: #574997.
++@basename@-jre-headless binary: unstripped-binary-or-object
++
++# Ignore the mouse cursors
++@basename@-jre-headless binary: image-file-in-usr-lib
++
++# Just an empty directory
++@basename@-jre-headless binary: debug-package-should-be-named-dbg
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++set -e
++
++multiarch=@multiarch@
++priority=@priority@
++basedir=/@basedir@
++mandir=$basedir/jre/man
++srcext=1.gz
++dstext=1.gz
++jre_tools='@jre_hl_tools@'
++
++case "$1" in
++configure)
++ # fail early. java currently uses tricks to find its own shared
++ # libraries depending on the path of the binary. Will be changed
++ # in OpenJDK7
++ if ! mountpoint -q /proc; then
++ echo >&2 "the java command requires a mounted proc fs (/proc)."
++ exit 1
++ fi
++
++ [ -d /etc/.java ] || mkdir -m 755 /etc/.java
++ [ -d /etc/.java/.systemPrefs ] || mkdir -m 755 /etc/.java/.systemPrefs
++ if [ ! -f /etc/.java/.systemPrefs/.system.lock ]; then
++ touch /etc/.java/.systemPrefs/.system.lock
++ chmod 644 /etc/.java/.systemPrefs/.system.lock
++ fi
++ if [ ! -f /etc/.java/.systemPrefs/.systemRootModFile ]; then
++ touch /etc/.java/.systemPrefs/.systemRootModFile
++ chmod 644 /etc/.java/.systemPrefs/.systemRootModFile
++ fi
++
++ if [ -z "$2" ]; then
++ update_alternatives=y
++ fi
++ if [ -n "$multiarch" ] && [ -n "$2" ]; then
++ for i in $jre_tools; do
++ if [ -z "$(update-alternatives --list $i 2>/dev/null | grep ^$basedir/)" ]; then
++ update_alternatives=y
++ break
++ fi
++ done
++ fi
++ if [ "$update_alternatives" != y ] && [ $priority -gt 1060 ]; then
++ for i in $jre_tools; do
++ oldp=$(update-alternatives --query java | awk -v b=$basedir '/^Alternative:/ && $2~b {p=1} /^Priority:/ && p {print $2; exit}')
++ if [ -n "$oldp" ] && [ "$oldp" -le 1060 ]; then
++ update_alternatives=y
++ break
++ fi
++ done
++ fi
++
++ if [ "$update_alternatives" = y ]; then
++ if [ -n "$multiarch" ] && [ "$DPKG_MAINTSCRIPT_ARCH" != $(dpkg --print-architecture) ]; then
++ priority=$(expr $priority - 1)
++ fi
++ for i in $jre_tools; do
++ unset slave1 slave2 || true
++ if [ -e $mandir/man1/$i.$srcext ]; then
++ slave1="--slave \
++ /usr/share/man/man1/$i.$dstext \
++ $i.$dstext \
++ $mandir/man1/$i.$srcext"
++ fi
++ # disabled
++ if false && [ -e $mandir/ja/man1/$i.$srcext ]; then
++ slave2="--slave \
++ /usr/share/man/ja/man1/$i.$dstext \
++ ${i}_ja.$dstext \
++ $mandir/ja/man1/$i.$srcext"
++ fi
++ update-alternatives \
++ --install \
++ /usr/bin/$i \
++ $i \
++ $basedir/jre/bin/$i \
++ $priority \
++ $slave1 $slave2
++ done
++ update-alternatives \
++ --install /usr/bin/jexec jexec $basedir/jre/lib/jexec $priority \
++ --slave \
++ /usr/share/binfmts/jar \
++ jexec-binfmt \
++ $basedir/jre/lib/jar.binfmt
++ fi # update alternatives
++
++ if [ -n "$multiarch" ] && [ -n "$2" ]; then
++ if true; then
++ :
++ elif dpkg --compare-versions "$2" lt 7~b147-2.0~pre3-3ubuntu2~; then
++ for d in cmm; do
++ if [ -d $basedir/jre/lib/$d ] && [ ! -h $basedir/jre/lib/$d ]; then
++ rm -rf $basedir/jre/lib/$d
++ ln -s ../../../java-6-openjdk-common/jre/lib/$d $basedir/jre/lib/$d
++ fi
++ done
++ fi
++ fi
++
++ # register binfmt; ignore errors, the alternative may already be
++ # registered by another JRE.
++ if which update-binfmts >/dev/null && [ -r /usr/share/binfmts/jar ]; then
++ update-binfmts --package @basename@ --import jar || true
++ fi
++
++ # activate class data sharing
++ case @archdir@ in i386|sparc)
++ rm -f $basedir/jre/lib/@archdir@/client/classes.jsa
++ log=$(tempfile)
++ if ! $basedir/bin/java -client -Xshare:dump -XX:PermSize=128m > $log; then
++ cat >&2 $log
++ rm -f $log
++ # this may fail on some machines/configurations, just ignore it.
++ echo >&2 "ignoring dump failure"
++ #exit 1
++ fi
++ rm -f $log
++ esac
++ case @archdir@ in amd64|i386|sparc)
++ rm -f $basedir/jre/lib/@archdir@/server/classes.jsa
++ log=$(tempfile)
++ if ! $basedir/bin/java -server -Xshare:dump > $log; then
++ cat >&2 $log
++ rm -f $log
++ # this may fail on some machines/configurations, just ignore it.
++ echo >&2 "ignoring dump failure"
++ #exit 1
++ fi
++ rm -f $log
++ esac
++
++ if [ -n "$multiarch" ]; then
++ if [ ! -h /@basedir@/jre/lib/zi ] && [ -d /@basedir@/jre/lib/zi ]; then
++ rm -rf /@basedir@/jre/lib/zi
++ ln -s ../../../../../share/javazi /@basedir@/jre/lib/zi
++ fi
++ fi
++
++ ;;
++
++esac
++
++#DEBHELPER#
++
++exit 0
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++set -e
++
++multiarch=@multiarch@
++jdirname=@jdirname@
++etcdir=/@etcdir@
++
++case "$1" in
++purge)
++ if [ -z "$jdirname" ] || [ -z "$etcdir" ]; then
++ echo >&2 "$(basename $0): Internal error"
++ exit 1
++ fi
++ # removals of config files in /etc is handled by dpkg
++
++ # XXX should remove /etc/.java ???
++ ;;
++esac
++
++#DEBHELPER#
--- /dev/null
--- /dev/null
++#! /bin/sh
++
++set -e
++
++if [ -h /usr/share/doc/@basename@-jre-headless ]; then
++ rm -f /usr/share/doc/@basename@-jre-headless
++fi
++
++multiarch=@multiarch@
++basedir=/@basedir@
++old_basedir=/usr/lib/jvm/java-7-openjdk
++jre_tools='java keytool pack200 rmid rmiregistry unpack200 orbd servertool tnameserv'
++
++case "$1" in
++ upgrade)
++ if [ -n "$multiarch" ] && [ -n "$2" ]; then
++ for i in $jre_tools; do
++ if [ -n "$(update-alternatives --list $i 2>/dev/null | grep ^$old_basedir/)" ]; then
++ update-alternatives --remove $i $old_basedir/jre/bin/$i || true
++ fi
++ done
++ if [ -n "$(update-alternatives --list jexec 2>/dev/null | grep ^$old_basedir/)" ]; then
++ update-alternatives --remove jexec $old_basedir/jre/lib/jexec || true
++ fi
++
++ if dpkg --compare-versions "$2" lt 7u45-2.4.3-0~; then
++ if [ -h $basedir/jre/lib/cmm ]; then
++ rm -f $basedir/jre/lib/cmm
++ fi
++ fi
++ fi
++ ;;
++esac
++
++#DEBHELPER#
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++set -e
++
++basedir=/@basedir@
++jre_tools='@jre_hl_tools@'
++
++rm -f $basedir/jre/lib/@archdir@/client/classes.jsa
++rm -f $basedir/jre/lib/@archdir@/server/classes.jsa
++
++if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then
++ for i in $jre_tools; do
++ update-alternatives --remove $i $basedir/jre/bin/$i
++ done
++
++ if which update-binfmts >/dev/null; then
++ # try to remove and ignore the error
++ if [ -e /var/lib/binfmts/@basename@ ]; then
++ update-binfmts --package @basename@ \
++ --remove jar /usr/bin/jexec || true
++ fi
++ fi
++
++ update-alternatives --remove jexec $basedir/jre/lib/jexec
++fi
++
++#DEBHELPER#
--- /dev/null
--- /dev/null
++# Strip libjvm.so with --strip-debug instead of --strip-unneeded. LP: #574997.
++@basename@-jre-zero binary: unstripped-binary-or-object
--- /dev/null
--- /dev/null
++?package(@basename@-jre):\
++ needs="x11"\
++ section="Applications/System/Administration"\
++ title="@vendor@ Java @RELEASE@ Policy Tool"\
++ command="/usr/bin/policytool"\
++ icon="/usr/share/pixmaps/@basename@.xpm"\
++ hints="Java2"
--- /dev/null
--- /dev/null
++# these are in the -jre-headless package, -jre depends on it
++@basename@-jre binary: desktop-command-not-in-package
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++set -e
++
++multiarch=@multiarch@
++priority=@priority@
++basedir=/@basedir@
++mandir=$basedir/jre/man
++srcext=1.gz
++dstext=1.gz
++jre_tools='@jre_tools@'
++
++case "$1" in
++configure)
++ if [ -d /usr/share/doc/@basename@-jre ] && [ ! -h /usr/share/doc/@basename@-jre ]; then
++ rm -rf /usr/share/doc/@basename@-jre
++ ln -sf @basename@-jre-headless /usr/share/doc/@basename@-jre;
++ fi
++
++ if [ -z "$2" ]; then
++ update_alternatives=y
++ fi
++ if [ -n "$multiarch" ] && [ -n "$2" ]; then
++ for i in $jre_tools; do
++ if [ -z "$(update-alternatives --list $i 2>/dev/null | grep ^$basedir/)" ]; then
++ update_alternatives=y
++ break
++ fi
++ done
++ fi
++ if [ "$update_alternatives" != y ] && [ $priority -gt 1060 ]; then
++ for i in $jre_tools; do
++ oldp=$(update-alternatives --query java | awk -v b=$basedir '/^Alternative:/ && $2~b {p=1} /^Priority:/ && p {print $2; exit}')
++ if [ -n "$oldp" ] && [ "$oldp" -le 1060 ]; then
++ update_alternatives=y
++ break
++ fi
++ done
++ fi
++
++ if [ "$update_alternatives" = y ]; then
++ if [ -n "$multiarch" ] && [ "$DPKG_MAINTSCRIPT_ARCH" != $(dpkg --print-architecture) ]; then
++ priority=$(expr $priority - 1)
++ fi
++ for i in $jre_tools; do
++ unset slave1 slave2 || true
++ if [ -e $mandir/man1/$i.$srcext ]; then
++ slave1="--slave \
++ /usr/share/man/man1/$i.$dstext \
++ $i.$dstext \
++ $mandir/man1/$i.$srcext"
++ fi
++ # disabled
++ if false && [ -e $mandir/ja/man1/$i.$srcext ]; then
++ slave2="--slave \
++ /usr/share/man/ja/man1/$i.$dstext \
++ ${i}_ja.$dstext \
++ $mandir/ja/man1/$i.$srcext"
++ fi
++ update-alternatives \
++ --install \
++ /usr/bin/$i \
++ $i \
++ $basedir/jre/bin/$i \
++ $priority \
++ $slave1 $slave2
++ done
++ fi # update alternatives
++
++ ;;
++
++esac
++
++#DEBHELPER#
++
++exit 0
--- /dev/null
--- /dev/null
++#! /bin/sh
++
++set -e
++
++if [ -h /usr/share/doc/@basename@-jre-headless ]; then
++ rm -f /usr/share/doc/@basename@-jre-headless
++fi
++
++multiarch=@multiarch@
++old_basedir=/usr/lib/jvm/java-7-openjdk
++jre_tools='policytool'
++
++case "$1" in
++ upgrade)
++ if [ -n "$multiarch" ] && [ -n "$2" ]; then
++ for i in $jre_tools; do
++ if [ -n "$(update-alternatives --list $i 2>/dev/null | grep ^$old_basedir/)" ]; then
++ update-alternatives --remove $i $old_basedir/jre/bin/$i || true
++ fi
++ done
++ fi
++ ;;
++esac
++
++#DEBHELPER#
++
++exit 0
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++set -e
++
++basedir=/@basedir@
++jre_tools='@jre_tools@'
++
++if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then
++ for i in $jre_tools; do
++ update-alternatives --remove $i $basedir/jre/bin/$i
++ done
++fi
++
++#DEBHELPER#
--- /dev/null
--- /dev/null
++[Desktop Entry]
++Name=@vendor@ Java @RELEASE@ Policy Tool
++Name[fi]=@vendor@ Java @RELEASE@ - käytäntötyökalu
++Name[fr]=@vendor@ Java @RELEASE@ - Outil de réglage
++Comment=@vendor@ Java @RELEASE@ Policy Tool
++Comment[fi]=@vendor@ Java @RELEASE@ - käytäntötyökalu
++Comment[fr]=@vendor@ Java @RELEASE@ - Outil de réglage
++Keywords=java;security;policytool
++Exec=/usr/bin/policytool
++Terminal=false
++Type=Application
++Icon=@basename@
++Categories=Settings;
--- /dev/null
--- /dev/null
++openjdk-7 for Debian/Ubuntu
++---------------------------
++
++The OpenJDK build is configured --with-additional-vms to build with
++different virtual machines. The original implementation of the hotspot
++VM is only available on the amd64, i386, lpia and sparc architectures.
++Other VM's: Zero, providing a byte code interpreter for every architecture.
++On some architectures Zero is built with JIT support using shark (still
++considered experimental).
++
++To use a different VM other than the default, use
++
++ java -jamvm|-zero|-shark
++
++or for the java tools, use
++
++ <tool name> -J-jamvm|-J-zero|-J-shark.
++
++The zero build on the ix86 architectures is built with shark (just in time
++compiler); to use the zero build without shark support, use the `-Xint'
++option to operate in interpreted-only mode.
++
++On some architectures (currently armel and powerpc, when built against
++llvm-2.6) which use ther zero vm as the default, the openjdk-7-jre-zero
++package contains the shark vm.
++
++To change the default permanently, edit /etc/java-7-openjdk/jvm.cfg.
++
++The Zero/Shark VM can be found in the openjdk-7-jre-zero package (on the
++architectures where the Hotspot VM is available).
++
++Please look for further documentation in the directory
++/usr/share/doc/openjdk-7-jre/ .
++
++The package openjdk-7-jre-headless ships a cgi script
++/usr/lib/jvm/java-7-openjdk/bin/java-rmi.cgi that you must integrate
++into your webserver setup manually if you need it. It is not activated
++automatically.
++
++
++Note for non-reparenting window manager users
++---------------------------------------------
++
++If you are using a non-reparenting window manager, such as ratpoison, awesome
++or dwm, some Java graphical applications using the AWT toolkit will only
++display empty grey windows, as described in but #508650.
++
++There are two solutions to work around this issue:
++1. mask your window manager as one of the non-reparenting ones supported by AWT,
++ using the wmname <http://tools.suckless.org/wmname> tool from the
++ suckless-tools package:
++ $ wmname LG3D
++2. set the environment variable _JAVA_AWT_WM_NONREPARENTING:
++ $ export _JAVA_AWT_WM_NONREPARENTING=true
++
++You can automate these tasks by writing them to your ~/.xsessionrc:
++$ cat >> ~/.xsessionrc <<EOF
++export _JAVA_AWT_WM_NONREPARENTING=true
++EOF
++
++
++IcedTea NPPlugin
++----------------
++
++IcedTea provides a java plugin for at least mozilla based browsers. It is
++not yet 100% with the closed source plugin, but much improved to the former
++GCJPlugin. If you experience problems with the plugin, start your browser
++from the command line with the environment variable ICEDTEAPLUGIN_DEBUG set,
++and attach this output to a bug report. You usually should not expect a
++quick fix, if the applet code is closed source, or only accessible after
++creating accounts for external web services using these applets.
++
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 03 May 2009 13:58:10 +0200
++ -- Torsten Werner <twerner@debian.org> Wed, 02 Apr 2008 11:46:53 +0200
--- /dev/null
--- /dev/null
++Updating alternatives for JRE/JDK installations
++-----------------------------------------------
++
++Packages providing a runtime or a development environment for the Java
++language all use symlinks in the /etc/alternatives directory to enable
++the system administrator to choose which programs to use for java,
++javac, javah, etc.
++
++The update-java-alternatives script can be used to set all the JRE/JDK
++alternatives:
++
++First, you have to decide which Java implementation to default to.
++
++ update-java-alternatives --list
++
++tells about the available runtime and/or development environments. The
++first column shows the names to be used in for the following examples.
++
++- Set all runtime tools to point to the <jname> alternatives:
++
++ update-java-alternatives --jre --set <jname>
++
++- Set all runtime tools (headless only) to point to the <jname>
++ alternatives:
++
++ update-java-alternatives --jre-headless --set <jname>
++
++- Set all runtime and development tools to point to the <jname>
++ alternatives:
++
++ update-java-alternatives --set <jname>
++
++- Set all runtime and development tools to auto mode:
++
++ update-java-alternatives --auto
--- /dev/null
--- /dev/null
++Content of source package
++=========================
++"openjdk-8" is a composite source package:
++- Multiple tarballs from each Oracle mercurial repositories :
++ corba / hotspot / jaxp / jaxws / jdk-dfsg / langtools / openjdk
++- Tarball from JamVM <http://jamvm.sourceforge.net>.
++- Debian packaging scripts and patches.
++
++Building a new OpenJDK-8 Debian package
++===================================================
++Pre-requisites:
++- Mercurial
++- Bazaar
++ sudo aptitude install mercurial bzr
++
++0) Clone OpenJDK debian packaging:
++ bzr branch lp:~openjdk/openjdk/openjdk7 openjdk7/
++ or update existing repository clone:
++ (cd openjdk7/; bzr pull --remember lp:~openjdk/openjdk/openjdk7)
++
++1) Clone IcedTea-7 HG:
++ hg clone http://icedtea.classpath.org/hg/icedtea7 icedtea-2.1.1/
++ or update existing repository clone:
++ (cd icedtea7/; hg pull -u)
++
++2) Download OpenJDK upstream tarballs and move them to $BUILD/
++ export BUILD=7u3
++ mkdir -p $BUILD/
++ (
++ cd icedtea-2.1.1/
++ sh autogen.sh && ./configure --enable-jamvm
++ make download
++ )
++
++ mv icedtea-2.1.1/*.tar.gz $BUILD/
++ (
++ cd icedtea-2.1.1/
++ make distclean
++ )
++
++3) Remove files with unclear license from jdk.tar.gz:
++ sh openjdk7/generate-dfsg-zip.sh $BUILD/jdk.tar.gz
++ sh openjdk7/generate-dfsg-zip.sh $BUILD/langtools.tar.gz
++
++4) Check tarballs' name and version (for original directory name)
++ in openjdk7/generate-debian-orig.sh and package version in
++ openjdk7/changelog
++
++5) Generate "orig" directory and "orig+debian" directory
++ sh openjdk7/generate-debian-orig.sh
++
++Support for DEB_BUILD_OPTIONS
++=============================
++As described in Debian Policy §4.9.1, current package's debian/rules support
++the standardized environment variable DEB_BUILD_OPTIONS. This variable can
++contain several flags to change how a package is compiled and built.
++
++ * nocheck: don't run jtreg test suites.
++ * nodocs: pass --disable-docs to IcedTea configure script, which
++ disable Javadoc generation.
++ * nostrip: debugging symbols should not be stripped from the
++ binary during installation
++ * parallel=X: package should be built using up to X parallel processes
++ * nobootstrap: don't use gcj to bootstrap OpenJDK but use existing OpenJDK
++ installed on current machine.
++ * noaltzero: don't build alternative Zero VM.
++ * noaltshark: don't build alternative Shark VM.
++ * noaltjamvm: don't build alternative Jamvm VM.
++
++Sample usage:
++DEB_BUILD_OPTIONS="parallel=5 nocheck" debuild -i"(\.hg|\.bzr)"
++
++ Build with 5 parallel processes and don't run jtreg test suites.
++
++This also work with cowbuilder/pbuilder:
++DEB_BUILD_OPTIONS="parallel=5 nocheck" pdebuild -i"(\.hg|\.bzr)" --logfile ../build.log --pbuilder cowbuilder
--- /dev/null
--- /dev/null
++ - PR2446: Support system libsctp
++ - support system libfontconfig
--- /dev/null
--- /dev/null
++#
++# The following line specifies the assistive technology classes
++# that should be loaded into the Java VM when the AWT is initailized.
++# Specify multiple classes by separating them with commas.
++# Note: the line below cannot end the file (there must be at
++# a minimum a blank line following it).
++#
++# Doesn't work, see LP: #935296
++#assistive_technologies=org.GNOME.Accessibility.AtkWrapper
++
--- /dev/null
--- /dev/null
++#
++# The following line specifies the assistive technology classes
++# that should be loaded into the Java VM when the AWT is initailized.
++# Specify multiple classes by separating them with commas.
++# Note: the line below cannot end the file (there must be at
++# a minimum a blank line following it).
++#
++assistive_technologies=org.GNOME.Accessibility.AtkWrapper
++
--- /dev/null
--- /dev/null
++#
++# The following line specifies the assistive technology classes
++# that should be loaded into the Java VM when the AWT is initialized.
++# Specify multiple classes by separating them with commas.
++# Note: the line below cannot end the file (there must be at
++# a minimum a blank line following it).
++#
++assistive_technologies=org.GNOME.Accessibility.JavaBridge
++
--- /dev/null
--- /dev/null
++'''Apport package hook for openjdk-8 packages.
++
++Copyright (C) 2017 Canonical Ltd.
++Author: Tiago Stürmer Daitx <tiago.daitx@canonical.com>'''
++
++import os
++import re
++import sys
++from apport.hookutils import *
++
++def si_units(size):
++ for unit in ['KiB', 'MiB', 'GiB']:
++ size /= 1024
++ if size < 1024:
++ break
++ return '{0:.1f} {1}'.format(size, unit)
++
++def add_info(report, ui=None):
++ attach_conffiles(report,'openjdk-8-jre-headless', ui=ui)
++
++ if report['ProblemType'] == 'Crash' and 'ProcCwd' in report:
++ # attach hs_err_<pid>.pid file
++ cwd = report['ProcCwd']
++ pid_line = re.search("Pid:\t(.*)\n", report["ProcStatus"])
++ if pid_line:
++ pid = pid_line.groups()[0]
++ path = "%s/hs_err_pid%s.log" % (cwd, pid)
++ # make sure if exists
++ if os.path.exists(path):
++ content = read_file(path)
++ # truncate if bigger than 100 KB
++ # see LP: #1696814
++ max_length = 100*1024
++ if sys.getsizeof(content) < max_length:
++ report['HotspotError'] = content
++ report['Tags'] += ' openjdk-hs-err'
++ else:
++ report['HotspotError'] = content[:max_length] + \
++ "\n[truncated by openjdk-8 apport hook]" + \
++ "\n[max log size is %s, file size was %s]" % \
++ (si_units(max_length), si_units(sys.getsizeof(content)))
++ report['Tags'] += ' openjdk-hs-err'
++ else:
++ report['HotspotError'] = "File not found: %s" % path
++ else:
++ report['HotspotError'] = "PID not found in ProcStatus entry."
--- /dev/null
--- /dev/null
++#! /bin/sh
++
++#
++# Output something to stdout every so often so buildd won't kill
++# the build when building
++#
++
++builddir=$1
++
++echo $$ > buildwatch.pid
++
++time_unit="m"
++timer=0
++sleep_for=3
++time_up_at=180
++upd_every=30 # use a multiple of $sleep_for
++
++reset_timer() { timer=0; }
++inc_timer() { timer=$(expr $timer + $sleep_for); }
++time_up() { [ $timer -ge $time_up_at ]; }
++can_update() { [ $(expr $timer % $upd_every) -eq 0 ]; }
++do_sleep() { sleep ${sleep_for}${time_unit} && inc_timer; }
++
++is_running() {
++ ps x | grep -v grep | egrep -qs $@
++ return $?
++}
++
++while ! time_up; do
++ if [ ! -f buildwatch.pid ]; then
++ echo "[$0] pidfile removed" && break
++ fi
++ if ! is_running '/make'; then
++ echo "[$0] no make process detected (build done?)" && break
++ fi
++
++ do_sleep
++ can_update || continue
++
++ new_noisy=$(ls -l test/jtreg_output-* 2>&1 | md5sum)
++ new_quiet=$(ls -l $builddir/openjdk*/build/*/tmp/rt-orig.jar $builddir/openjdk*/build/*/lib/tools.jar $builddir/openjdk*/build/*/lib/ct.sym 2>&1 | md5sum)
++ if [ -n "$old_noisy" -a "$old_noisy" != "$new_noisy" ]; then
++ # jtreg updated test files, so it should be updating stdout in its own
++ # keep quiet and restart timer
++ reset_timer
++ elif [ -n "$old_quiet" -a "$old_quiet" != "$new_quiet" ]; then
++ reset_timer
++ echo "[$0] assembling jar file ..."
++ elif is_running '/cc1|jar|java|gij'; then
++ echo "[$0] compiler/java/jar running ..."
++ reset_timer
++ fi
++ old_noisy=$new_noisy
++ old_quiet=$new_quiet
++done
++
++echo "[$0] exiting"
++rm -f buildwatch.pid
--- /dev/null
--- /dev/null
++openjdk-8 (8u212-b01-1~deb9u1) stretch-security; urgency=medium
++
++ * Rebuild for stretch
++
++ -- Moritz Muehlenhoff <jmm@debian.org> Tue, 19 Mar 2019 00:06:47 +0100
++
++openjdk-8 (8u212-b01-1) unstable; urgency=medium
++
++ * Update to 8u212-b01.
++ * Enable SA on AArch64.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 19 Mar 2019 08:26:02 +0100
++
++openjdk-8 (8u202-b26-3) unstable; urgency=medium
++
++ * Fix the 8u202 merge for aarch32, not using SA.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 18 Mar 2019 14:13:37 +0100
++
++openjdk-8 (8u202-b26-2) unstable; urgency=medium
++
++ * Fix builds using the aarch32 hotspot version.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 17 Mar 2019 23:37:54 +0100
++
++openjdk-8 (8u202-b26-1) unstable; urgency=high
++
++ * Update to 8u202-b26.
++ * Security fixes:
++ - CVE-2019-2422, S8206290: Better FileChannel transfer performance.
++ - CVE-2019-2426, S8209094: Improve web server connections.
++ - S8199156: Better route routing.
++ - S8199552: Update to build scripts.
++ - S8200659: Improve BigDecimal support.
++ - S8203955: Improve robot support.
++ - S8204895: Better icon support.
++ - S8205709: Proper allocation handling.
++ - S8205714: Initial class initialization.
++ - S8210094: Better loading of classloader classes.
++ - S8210606: Improved data set handling.
++ - S8210866: Improve JPEG processing.
++
++ [ Tiago Stürmer Daitx ]
++ * Update DEP8 tests:
++ - debian/tests/control: updated to allow stderr output and to remove
++ dpkg-dev dependency.
++ - debian/tests/jtdiff-autopkgtest.sh: use dpkg --print-architecture
++ instead of dpkg-architecture; log script name on any output.
++ - debian/tests/jtreg-autopkgtest.in: use dpkg --print-architecture instead
++ of dpkg-architecture; do not retain test temporary files; log script
++ name on any output.
++ - debian/tests/jtreg-autopkgtest.sh: regenerated.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 17 Mar 2019 17:07:16 +0100
++
++openjdk-8 (8u191-b12-2) unstable; urgency=high
++
++ * Upload to unstable.
++ * Remove the "Team upload" for the last upload to experimental.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 05 Dec 2018 09:06:06 +0100
++
++openjdk-8 (8u191-b12-1) experimental; urgency=medium
++
++ * Update to 8u191-b12. (Closes: #911925, Closes: #912333, LP: #1800792)
++ * debian/excludelist.jdk.jtx: no longer needed, using ProblemsList.txt
++ from upstream now.
++ * debian/excludelist.langtools.jtx: upstream testing does not use any
++ exclusion list.
++ * debian/patches/sec-webrev-8u191-b12*: removed, applied upstream.
++ * debian/patches/jdk-8132985-backport-double-free.patch,
++ debian/patches/jdk-8139803-backport-warning.patch: fix crash in
++ freetypescaler due to double free, thanks to Heikki Aitakangas for
++ the report and patches. (Closes: #911847)
++ * debian/rules:
++ - tar and save JTreport directory.
++ - run the same limited set of tests as upstream does.
++ - call the same testsuites scripts used for autopkgtest.
++ - reenable jdk testsuite.
++ - simplified and moved xvfb logic into check-jdk rule.
++ - removed jtreg and xvfb build dependency logic and moved the bdeps
++ into debian/control.in.
++ - added rules to generate autopkgtest scripts from templates.
++ * updated dep8 tests:
++ - debian/test/control: run hotspot, langtools, and jdk testsuites.
++ - debian/tests/hotspot, debian/tests/jdk, debian/tests/langtools:
++ add scripts for each testsuite to be run.
++ - debian/tests/jtreg-autopkgtest.sh: template to generate the jtreg
++ script used by the autopkgtest tests.
++ - debian/tests/jtdiff-autopkgtest.sh: used by the scripts to report
++ any differences between the autopkgtest and the tests results
++ generated during the openjdk package build.
++ - debian/tests/jtreg-autopkgtest.sh: used by the scripts to run jtreg
++ and put the resulting artifacts in the right places.
++ - debian/tests/valid-tests: removed, no longer needed.
++
++ -- Tiago Stürmer Daitx <tiago.daitx@ubuntu.com> Mon, 19 Nov 2018 11:02:46 +0000
++
++openjdk-8 (8u181-b13-2) unstable; urgency=high
++
++ [ Tiago Stürmer Daitx ]
++ * Apply patches from 8u191-b12 security update.
++ - CVE-2018-3136, S8194534: Manifest better support.
++ - CVE-2018-3139, S8196902: Better HTTP Redirection.
++ - CVE-2018-3149, S8199177: Enhance JNDI lookups.
++ - CVE-2018-3169, S8199226: Improve field accesses.
++ - CVE-2018-3180, S8202613: Improve TLS connections stability.
++ - CVE-2018-3183, S8202936: Improve script engine support.
++ - CVE-2018-3214, S8205361: Better RIFF reading support.
++ - CVE-2018-3211: Unspecified vulnerability in the Serviceability component.
++ - S8195868: Address Internet Addresses.
++ - S8195874: Improve jar specification adherence.
++ - S8201756: Improve cipher inputs.
++ - S8203654: Improve cypher state updates.
++ - S8204497: Better formatting of decimals.
++ * debian/patches/jdk-freetypeScaler-crash.diff: removed as this patch causes
++ a memory leak; upstream fixed it in openjdk-7, albeit in a different way.
++ Closes: #910672.
++
++ [ Matthias Klose ]
++ * Bump standards version.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 21 Oct 2018 12:23:32 +0200
++
++openjdk-8 (8u181-b13-1) unstable; urgency=high
++
++ * Update to 8u181-b13.
++ * Remove the mauve test machinery.
++ * Build using GCC 8 in development releases.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 04 Aug 2018 14:10:33 +0200
++
++openjdk-8 (8u171-b11-2) unstable; urgency=medium
++
++ * Update the zero-architectures patch for ia64 (Adrian Glaubitz).
++ Closes: #897066.
++ * Fix zero build on ia64 (Adrian Glaubitz). Closes: #897068.
++ * Refresh patches.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 17 May 2018 16:17:27 -0400
++
++openjdk-8 (8u171-b11-1) unstable; urgency=high
++
++ [ Tiago Stürmer Daitx ]
++ * Update to 8u171-b11. Hotspot 8u162-b12 for aarch32 with 8u171-b10 hotspot
++ security fixes and 8u171-b10 for aarch64.
++ - CVE-2018-2790,S8189969: Manifest better manifest entries.
++ - CVE-2018-2795,S8189977: Improve permission portability.
++ - CVE-2018-2796,S8189981: Improve queuing portability.
++ - CVE-2018-2797,S8189985: Improve tabular data portability.
++ - CVE-2018-2798,S8189989: Improve container portability.
++ - CVE-2018-2799,S8189993: Improve document portability.
++ - CVE-2018-2794,S8189997: Enhance keystore mechanisms.
++ - CVE-2018-2814,S8192025: Less referential references.
++ - CVE-2018-2815,S8192757: Improve stub classes implementation.
++ - CVE-2018-2800,S8193833: Better RMI connection support.
++ - S8169080: Improve documentation examples for crypto applications.
++ - S8180881: Better packaging of deserialization.
++ - S8182362: Update CipherOutputStream Usage.
++ - S8189123: More consistent classloading.
++ - S8190478: Improved interface method selection.
++ - S8190877: Better handling of abstract classes.
++ - S8191696: Better mouse positioning.
++ - S8192030: Better MTSchema support.
++ - S8193409: Improve AES supporting classes.
++ - S8193414: Improvements in MethodType lookups.
++ * d/p/aarch64-hotspot-8u162-b12.patch: removed, tarball has been updated to
++ 8u171-b10.
++ * d/p/hotspot-S8185723-zero-ppc32-atomic_copy64-fix.patch,
++ d/p/hotspot-S8201509-zero-s390x-atomic_copy64-fix.patch: fix ppc32, s390x
++ javac segmentation fault caused by wrong inline assembler.
++
++ [ Matthias Klose ]
++ * Bump standards version.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 27 Apr 2018 08:56:10 +0200
++
++openjdk-8 (8u162-b12-1) unstable; urgency=high
++
++ [ Tiago Stürmer Daitx ]
++ * Update to 8u162-b12. Hotspot 8u162-b12 for aarch32 and 8u161-b16
++ for aarch64 (wth 8u162-b12 patches).
++ * Security updates:
++ - CVE-2018-2633,S8186606: Improve LDAP lookup robustness.
++ - CVE-2018-2637,S8186998: Improve JMX supportive features.
++ - CVE-2018-2634,S8186600: Improve property negotiations.
++ - CVE-2018-2582,S8174962: Better interface invocations.
++ - CVE-2018-2641,S8185325: Improve GTK initialization.
++ - CVE-2018-2618,S8185292: Stricter key generation.
++ - CVE-2018-2629,S8186212: Improve GSS handling.
++ - CVE-2018-2603,S8182387: Improve PKCS usage.
++ - CVE-2018-2599,S8182125: Improve reliability of DNS lookups.
++ - CVE-2018-2602,S8182601: Improve usage messages.
++ - CVE-2018-2588,S8178449: Improve LDAP logins.
++ - CVE-2018-2678,S8191142: More refactoring for naming deserialization
++ cases.
++ - CVE-2018-2677,S8190289: More refactoring for client deserialization
++ cases.
++ - CVE-2018-2663,S8189284: More refactoring for deserialization cases.
++ - CVE-2018-2579,S8172525: Improve key keying case.
++ * d/p/aarch64-hotspot-8u162-b12.patch: update aarch64 hotspot to 8u162-b12.
++ * d/p/icedtea-4953367.patch: removed, fixed upstream by "S8136570: Stop
++ changing user environment variables related to /usr/dt".
++ * d/p/gcc6.diff: removed, fixed upstream.
++ * d/p/jdk-getAccessibleValue.diff: updated, removed chunks fixed upstream
++ by "S8076249: NPE in AccessBridge while editing JList model" and
++ "S8145207: [macosx] JList, VO can't access non-visible list items".
++ * d/p/openjdk-ppc64el-S8170153.patch, d/p/8164293.diff,
++ d/p/hotspot-ppc64el-S8145913-montgomery-multiply-intrinsic.patch,
++ d/p/hotspot-ppc64el-S8168318-cmpldi.patch,
++ d/p/hotspot-ppc64el-S8170328-andis.patch,
++ d/p/hotspot-ppc64el-S8175813-mbind-invalid-argument.patch,
++ d/p/hotspot-ppc64el-S8181055-use-numa-v2-api.patch,
++ d/p/hotspot-ppc64el-S8181810-leverage-extrdi.patch: removed,
++ applied upstream.
++ * d/rules, d/control: depend on GKT3 instead of GTK2 for newer releases.
++ LP: #1735482.
++ * d/rules: wait 10 seconds before issuing SIGKILL to buildwatch.
++ * d/buildwatch.sh: find hs_err files and cat them to help debugging build
++ failures.
++ * S8173853: IllegalArgumentException in java.awt.image.ReplicateScaleFilter.
++ LP: #8173853.
++
++ [ Matthias Klose ]
++ * Disable Hotspot workaround for Exec Shield (Debian only).
++ Closes: #876051.
++ * Fix some lintian warnings.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 15 Mar 2018 18:19:50 +0100
++
++openjdk-8 (8u151-b12-1) unstable; urgency=high
++
++ * Update to 8u151-b12. Hotspot 8u144-b01 for aarch32 with 8u151 hotspot
++ patches.
++
++ [ Tiago Stürmer Daitx ]
++ * Security patches:
++ - CVE-2017-10274, S8169026: Handle smartcard clean up better. If a
++ CardImpl can be recovered via finalization, then separate instances
++ pointing to the same device can be created.
++ - CVE-2017-10281, S8174109: Better queuing priorities. PriorityQueue's
++ readObject allocates an array based on data in the stream which could
++ cause an OOM.
++ - CVE-2017-10285, S8174966: Unreferenced references. RMI's Unreferenced
++ thread can be used as the root of a Trusted Method Chain.
++ - CVE-2017-10295, S8176751: Better URL connections. On Ubuntu (and
++ possibly other Linux flavors) CR-NL in the host field are ignored and
++ can be used to inject headers in an HTTP request stream.
++ - CVE-2017-10388, S8178794: Correct Kerberos ticket grants. Kerberos
++ implementations can incorrectly take information from the unencrypted
++ portion of the ticket from the KDC. This can lead to an MITM attack
++ impersonating Kerberos services.
++ - CVE-2017-10346, S8180711: Better alignment of special invocations. A
++ missing load constraint for some invokespecial cases can allow invoking
++ a method from an unrelated class.
++ - CVE-2017-10350, S8181100: Better Base Exceptions. An array is allocated
++ based on data in the serial stream without a limit on the size.
++ - CVE-2017-10347, S8181323: Better timezone processing. An array is
++ allocated based on data in the serial stream without a limit on the
++ size.
++ - CVE-2017-10349, S8181327: Better Node predications. An array is
++ allocated based on data in the serial stream without a limit on the size.
++ - CVE-2017-10345, S8181370: Better keystore handling. A malicious
++ serialized object in a keystore can cause a DoS when using keytool.
++ - CVE-2017-10348, S8181432: Better processing of unresolved permissions.
++ An array is allocated based on data in the serial stream without a limit
++ on the size.
++ - CVE-2017-10357, S8181597: Process Proxy presentation. A malicious
++ serialized stream could cause an OOM due to lack on checking on the
++ number of interfaces read from the stream for a Proxy.
++ - CVE-2017-10355, S8181612: More stable connection processing. If an
++ attack can cause an application to open a connection to a malicious FTP
++ server (e.g., via XML), then a thread can be tied up indefinitely in
++ accept(2).
++ - CVE-2017-10356, S8181692: Update storage implementations. JKS and JCEKS
++ keystores should be retired from common use in favor of more modern
++ keystore protections.
++ - CVE-2016-10165, S8183028: Improve CMS header processing. Missing bounds
++ check could lead to leaked memory contents.
++ - CVE-2016-9841, S8184682: Upgrade compression library. There were four
++ off by one errors found in the zlib library. Two of them are long typed
++ which could lead to RCE.
++ * debian/rules:
++ - openjdk8 now ships limited and unlimited policy.jar files (S8157561)
++ into their own directories under jre/lib/security/policy.
++ * debian/rules, d/p/sec-webrev-8u151-hotspot-8179084.patch,
++ d/p/sec-webrev-8u151-hotspot-8180711.patch: Apply hotspot security updates
++ to both aarch32 and aarch64.
++ * d/p/gcc6.diff, d/p/aarch64.diff, d/p/aarch32.diff, d/p/m68k-support.diff,
++ d/p/system-libjpeg.diff: Remove hunks related to the generated configure
++ file generated during the build.
++ * d/p/hotspot-ppc64el-S8168318-cmpldi.patch: Use cmpldi instead of li/cmpld.
++ LP: #1723893.
++ * d/p/hotspot-ppc64el-S8170328-andis.patch: Use andis instead of lis/and.
++ LP: #1723862.
++ * d/p/hotspot-ppc64el-S8145913-montgomery-multiply-intrinsic.patch: Add
++ Montgomery multiply intrinsic. LP: #1723860.
++ * d/p/hotspot-ppc64el-S8181810-leverage-extrdi.patch: Leverage extrdi for
++ bitfield extract is absent in OpenJDK 8. LP: #1723861.
++ * d/p/jdk-S8165852-overlayfs.patch: Mount point not found for a file which
++ is present in overlayfs.
++
++ [ Matthias Klose ]
++ * Bump standards version.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 01 Nov 2017 07:12:56 +0100
++
++openjdk-8 (8u144-b01-2) unstable; urgency=medium
++
++ [ Matthias Klose ]
++ * Don't regenerate the control file during the build.
++ * Enable systemtap on sh4.
++ * Bump standards version to 4.1.0.
++ * Build using GCC 7 on recent development versions.
++
++ [ Tiago Stürmer Daitx ]
++ * debian/rules:
++ - when zero/shark alternate vm is build, add '-zero KNOWN' to jvm.cfg.
++ - for non-hotspot builds add '-zero ALIASED_TO -server' to jvm.cfg.
++ - enable zero alternate vm on armhf.
++ * debian/jvm.cfg-client_default: aarch32 only builds the client
++ compiler and requires its own default jvm. Closes: #874434.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 30 Sep 2017 02:37:14 +0200
++
++openjdk-8 (8u144-b01-1) unstable; urgency=medium
++
++ * Update to 8u144-b01.
++ - fix regression introduced by security fix S8169392. LP: #1707082.
++
++ [ Matthias Klose ]
++ * Fix libjvm.so's .debug file names. LP: #1548434.
++ * Remove dependency on multiarch-support. Closes: #870520.
++
++ [ Tiago Stürmer Daitx ]
++ * debian/apport-hook.py:
++ - truncate hs_err if bigger than 100 KiB instead of ignoring it.
++ - add message if hs_err file is not found at expected location.
++ - report file size in human readble SI units.
++ * debian/control.in:
++ - move 'Breaks:' from openjdk-8-jdk-headless to openjdk-8-jre-headless.
++ - remove jamvm references.
++ * debian/control.jamvm-jre: removed.
++ * debian/control.jamvm-trans: transactional package for jamvm.
++ * debian/rules:
++ - add aarch32 hotspot support.
++ - build aarch32 using client jvm-variant (no server in aarch32 port).
++ - use DEB_HOST_ARCH instead of DEB_HOST_ARCH_CPU as armel and armhf
++ are both reported as arm.
++ - explicitly add kfreebsd-i386, kfreebsd-amd64, hurd-i386 to arch_map
++ and archdir_map due to usage of DEB_HOST_ARCH.
++ - avoid building zero as an alternative vm for aarch32.
++ - disable precompiled headers on Trusty to minimize g++-4.8 segfaults.
++ - don't build zero alternate vm on Trusty, avoid g++-4.8 segfaults.
++ - add a 'Breaks:' entry to ca-certificates-java for all releases
++ except Trusty. LP: #1706567.
++ - remove jamvm.
++ * debian/patches/aarch64.diff: remove unnecessary chunks as aarch64 is
++ now upstream.
++ * debian/patches/aarch32.diff: add required changes to root and jdk to
++ build aarch32.
++ * debian/patches/hotspot-libpath-aarch32.diff: copied from
++ hotspot-libpath-default.diff.
++ * debian/patches/ppc64le-8036767.diff: updated.
++ * debian/patches/jdk-ppc64el-S8170153.patch: updated to include aarch64.
++ * debian/patches/jdk-java-nio-bits-unligned-aarch64.diff: Check for
++ "aarch64" along with other unaligned access supporting architectures.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 23 Aug 2017 21:41:07 +0200
++
++openjdk-8 (8u141-b15-3) unstable; urgency=high
++
++ * Fix building the javadocs, build error introduced by the m68k changes.
++ * Update the kfreebsd patches (Adrian Glaubitz). Closes: #869643, #869672.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 25 Jul 2017 17:03:27 +0200
++
++openjdk-8 (8u141-b15-2) unstable; urgency=high
++
++ [ Matthias Klose ]
++ * Update the m68k-support patch (Adrian Glaubitz). Closes: #864180.
++ * Disable generation of jvmti.html on m68k (Adrian Glaubitz).
++ Closes: #864205.
++ * Disable the jamvm autopkg tests.
++ * CVE-2017-10243 is also fixed in 8u141-b15 (S8182054).
++
++ [ Tiago Stürmer Daitx ]
++ * patches/hotspot-ppc64el-S8181055-use-numa-v2-api.patch: mbind invalid
++ argument message is still seen after S8175813; use numa_interleave_memory
++ v2 api when available. LP: #1705763.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 24 Jul 2017 23:09:09 +0200
++
++openjdk-8 (8u141-b15-1) unstable; urgency=high
++
++ * Update to 8u141-b15, Hotspot 8u141-b16 for AArch64.
++ * Security fixes from 8u141:
++ - CVE-2017-10102, S8163958: Improved garbage collection.
++ - CVE-2017-10053, S8169209: Improved image post-processing steps.
++ - CVE-2017-10067, S8169392: Additional jar validation steps.
++ - CVE-2017-10081, S8170966: Right parenthesis issue.
++ - CVE-2017-10078, S8171539: Better script accessibility for JavaScript.
++ - CVE-2017-10087, S8172204: Better Thread Pool execution.
++ - CVE-2017-10089, S8172461: Service Registration Lifecycle.
++ - CVE-2017-10090, S8172465: Better handling of channel groups.
++ - CVE-2017-10096, S8172469: Transform Transformer Exceptions.
++ - CVE-2017-10101, S8173286: Better reading of text catalogs.
++ - CVE-2017-10107, S8173697: Less Active Activations.
++ - CVE-2017-10074, S8173770: Image conversion improvements.
++ - CVE-2017-10110, S8174098: Better image fetching.
++ - CVE-2017-10108, S8174105: Better naming attribution.
++ - CVE-2017-10109, S8174113: Better sourcing of code.
++ - CVE-2017-10115, S8175106: Higher quality DSA operations.
++ - CVE-2017-10118, S8175110: Higher quality ECDSA operations.
++ - CVE-2017-10116, S8176067: Proper directory lookup processing.
++ - CVE-2017-10135, S8176760: Better handling of PKCS8 material.
++ - CVE-2017-10176, S8178135: Additional elliptic curve support.
++ - CVE-2017-10193, S8179101: Improve algorithm constraints implementation.
++ - CVE-2017-10198, S8179998: Clear certificate chain connections.
++ - S8174770: Check registry registration location.
++ - S8174873: Improved certificate procesing.
++ - S8176055: JMX diagnostic improvements.
++ - S8176536: Improved algorithm constraints checking.
++ - S8181420: PPC: Image conversion improvements.
++ - S8182054: Improve wsdl support.
++ - S8184185: Rearrange MethodHandle arrangements.
++
++ [ Matthias Klose ]
++ * Provide jvmdir symlink in /usr/lib/debug. Closes: #867314.
++ * Fix pt_BR translation in awt message. Closes: #863331.
++
++ [ Tiago Stürmer Daitx ]
++ * debian/rules:
++ - enable apport hook on Ubuntu and derivatives only.
++ - remove with_zenhai logic.
++ - remove unused with_tzdata logic, move tzdata build dependency
++ to control.in.
++ - add Breaks:tzdata-java except for wheezy, jessie or trusty.
++ - re-enable jamvm for Xenial only.
++ - run debian/control before build so we won't build with a invalid
++ control file.
++ - remove logic to select between ttf or font packages and depend
++ on fonts-wqy-microhei and fonts-wqy-zenhei instead
++ * debian/apport-hook.py: add an apport hook to include conffiles
++ modified by the user on any report and the hs_err log file on
++ crash report only. LP: #1696886.
++ * patches/fontconfig-arphic-uming.diff: only enabled when with_zenhai
++ was false; not required since lenny.
++ * patches/hotspot-ppc64el-S8175813-mbind-invalid-argument.patch: prevent
++ invalid argument message when invoking UseNUMA on a system with
++ non-consecutive numa topology. LP: #1697348.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 21 Jul 2017 13:51:05 +0200
++
++openjdk-8 (8u131-b11-2) unstable; urgency=medium
++
++ * Tighten dependency on libatk-wrapper-java-jni. Closes: #862508.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 16 May 2017 14:38:22 -0700
++
++openjdk-8 (8u131-b11-1) unstable; urgency=high
++
++ * Update to 8u131-b11, Hotspot 8u112-b12 for AArch64.
++ * Security fixes:
++ - S8167110, CVE-2017-3514: Windows peering issue.
++ - S8165626, CVE-2017-3512: Improved window framing.
++ - S8163528, CVE-2017-3511: Better library loading.
++ - S8169011, CVE-2017-3526: Resizing XML parse trees.
++ - S8163520, CVE-2017-3509: Reuse cache entries.
++ - S8171533, CVE-2017-3544: Better email transfer.
++ - S8170222, CVE-2017-3533: Better transfers of files.
++ - S8171121, CVE-2017-3539: Enhancing jar checking.
++
++ [ Tiago Stürmer Daitx ]
++ * d/p/jdk-ppc64el-S8165231.diff: fixes java.nio.Bits.unaligned() on
++ ppc64el. LP: #1677612.
++ * debian/buildwatch.sh: updated to stop it if no 'make' process is running,
++ as it probably means that the build failed - otherwise buildwatch keeps
++ the builder alive until it exits after the timer (3 hours by default)
++ expires.
++
++ [ Matthias Klose ]
++ * openjdk-8-jre-headless: Add a break for tzdata-java. Closes: #857992.
++ * Use fonts-wqy-microhei and fonts-wqy-zenhei instead of transitional package
++ names. Closes: #859528.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 01 May 2017 19:28:19 +0700
++
++openjdk-8 (8u121-b13-4.1) unstable; urgency=medium
++
++ * Non-maintainer upload.
++ * openjdk-8-jre-headless: Add Breaks: tzdata-java to ensure openjdk gets
++ upgraded on dist-upgrades from jessie. (Closes: #857992)
++
++ -- Andreas Beckmann <anbe@debian.org> Tue, 18 Apr 2017 22:32:33 +0200
++
++openjdk-8 (8u121-b13-4) unstable; urgency=medium
++
++ * Drop Recommends on obsolete GNOME libraries so they are not in a
++ default GNOME desktop installation (Simon McVittie). Closes: #850268.
++ - sun.net.spi.DefaultProxySelector prefers libglib2.0-0 (>= 2.24)
++ over obsolete libgconf2-4.
++ - sun.nio.fs.GnomeFileTypeDetector prefers libglib2.0-0 (>= 2.24)
++ over libgnomevfs-2-0.
++ - sun.xawt.awt_Desktop prefers libgtk2.0-0 (>= 2.14) over
++ libgnomevfs2-0.
++ * See the bug report for an analysis why this can be done for releases
++ back to Debian wheezy (7.0) and Ubuntu precise (12.04 LTS).
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 03 Mar 2017 18:46:54 +0100
++
++openjdk-8 (8u121-b13-3) unstable; urgency=medium
++
++ * Really don't build the JamVM VM.
++ * Fix 8164293: HotSpot leaking memory in long-running requests.
++ Closes: #853758.
++ * Add OpenJDK Stack Unwinder and Frame Decorator for gdb.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 08 Feb 2017 07:24:13 +0100
++
++openjdk-8 (8u121-b13-2) unstable; urgency=medium
++
++ * Fix libjpeg dependency. Closes: #852378.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 24 Jan 2017 14:22:36 +0100
++
++openjdk-8 (8u121-b13-1) unstable; urgency=high
++
++ * Update to 8u121-b13, Hotspot 8u112-b16 for AArch64.
++
++ [ Matthias Klose ]
++ * Build using the default flags (POWER8) on ppc64el.
++ * Add a breaks for ca-certificates-java (<< 20160321~). Closes: #851667.
++ * Stop building JamVM for the stretch release, the VM is not working
++ with recent OpenJDK 8 updates. Closes: #841229, #842132.
++ * Fix location of jspawnhelper for KFreeBSD. Closes: #851053.
++
++ [ Tiago Stürmer Daitx ]
++ * debian/rules: add -O3 to DEB_CFLAGS_MAINT_STRIP and
++ DEB_CXXFLAGS_MAINT_STRIP for dpkg_buildflags_jdk and
++ dpkg_buildflags_hs as ppc64le has -O3 by default. LP: #1640845.
++ * Update to 8u121-b13, including security fixes.
++ - S8165344, CVE-2017-3272: A protected field can be leveraged into type
++ confusion.
++ - S8167104, CVE-2017-3289: Custom class constructor code can bypass the
++ required call to super.init allowing for uninitialized objects to be
++ created.
++ - S8156802, CVE-2017-3241: RMI deserialization should limit the types
++ deserialized to prevent attacks that could escape the sandbox.
++ - S8164143, CVE-2017-3260: It is possible to corrupt memory by calling
++ dispose() on a CMenuComponentmultiple times.
++ - S8168714, CVE-2016-5546: ECDSA will accept signatures that have various
++ extraneous bytes added to them whereas the signature is supposed to be
++ unique.
++ - S8166988, CVE-2017-3253: The PNG specification allows the [iz}Txt
++ sections to be 2^32-1 bytes long so these should not be uncompressed
++ unless the user explicitly requests it.
++ - S8168728, CVE-2016-5548: DSA signing exhibits a timing bias that may
++ leak information about k.
++ - S8168724, CVE-2016-5549: ECDSA signing exhibits a timing bias that may
++ leak information about k.
++ - S8161743, CVE-2017-3252: LdapLoginModule incorrectly tries to
++ deserialize responses from an LDAP server when an LDAP context is
++ expected.
++ - S8167223, CVE-2016-5552: Parsing of URLs can be inconsistent with how
++ users or external applications would interpret them leading to possible
++ security issues.
++ - S8168705, CVE-2016-5547: A value from an InputStream is read directly
++ into the size argument of a new byte[] without validation.
++ - S8164147, CVE-2017-3261: An integer overflow exists in
++ SocketOutputStream which can lead to memorydisclosure.
++ - S8151934, CVE-2017-3231: Under some circumstances URLClassLoader will
++ dispatch HTTP GET requests where the invoker does not have permission.
++ - S8165071, CVE-2016-2183: 3DES can be exploited for block collisions when
++ long running sessions are allowed.
++ * d/p/8132051-zero.diff: Superseeded by upstream fix S8154210; removed.
++ * d/p/hotspot-JDK-8158260-ppc64el.patch: Applied upstream; removed.
++ * d/p/6926048.diff: Already applied upstream; removed.
++ * d/p/jdk-ppc64el-S8170153.patch, d/p/openjdk-ppc64el-S8170153.patch: Improve
++ StrictMath performance on ppc64el. LP: #1646927.
++ * d/p/jdk-841269-filechooser.patch: Fix FileChooser behavior when displaying
++ links to non-existant files. Closes: #841269.
++ * Refreshed various patches.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 23 Jan 2017 11:03:55 +0100
++
++openjdk-8 (8u111-b14-3) unstable; urgency=high
++
++ [ Tiago Stürmer Daitx ]
++ * Remove cacao references, updated jtreg tests to use agentvm and auto
++ concurrency.
++ * Run the jtreg tests on autopkg testing.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 02 Nov 2016 20:05:41 +0100
++
++openjdk-8 (8u111-b14-2) unstable; urgency=high
++
++ * Apply the kfreebsd patches conditionally.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 19 Oct 2016 21:26:28 +0200
++
++openjdk-8 (8u111-b14-1) unstable; urgency=high
++
++ * Update to 8u111-b14, including security fixes.
++ - CVE-2016-5568, S8158993: Service Menu services.
++ - CVE-2016-5582, S8160591: Improve internal array handling.
++ - CVE-2016-5573, S8159519: Reformat JDWP messages.
++ - CVE-2016-5597, S8160838: Better HTTP service.
++ - CVE-2016-5554, S8157739: Classloader Consistency Checking.
++ - CVE-2016-5542, S8155973: Tighten jar checks.
++ * Enable hotspot builds for sparc64. Closes: #835973.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 19 Oct 2016 19:02:13 +0200
++
++openjdk-8 (8u102-b14.1-2) unstable; urgency=medium
++
++ * Fix build failure with GCC 6. Closes: #811694.
++ * Fix JamVM, lacking JVM_GetResourceLookupCacheURLs (Xerxes Rånby).
++ Closes: #826206.
++ * Explicitly build using GCC 6.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 06 Aug 2016 10:12:09 +0200
++
++openjdk-8 (8u102-b14.1-1) unstable; urgency=medium
++
++ * Use the 8u101 tarballs instead of the 8u102 tarballs (inventing a fake
++ version number).
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 01 Aug 2016 16:31:18 +0200
++
++openjdk-8 (8u102-b14-2) unstable; urgency=medium
++
++ * Update AArch64 and KFreeBSD patches.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 26 Jul 2016 13:00:12 +0200
++
++openjdk-8 (8u102-b14-1) unstable; urgency=medium
++
++ * Update to 8u101-b14, including security fixes:
++ * IIOP Input Stream Hooking. CVE-2016-3458:
++ defaultReadObject is not forbidden in readObject in subclasses of
++ InputStreamHook which provides leverage to deserialize malicious objects
++ if a reference to the input stream can be obtained separately.
++ * Complete name checking. S8148872, CVE-2016-3500:
++ In some cases raw names in XML data are not checked for length limits
++ allowing for DoS attacks.
++ * Better delineation of XML processing. S8149962, CVE-2016-3508:
++ Denial of service measures do not take newline characters into account.
++ This can be used to conduct attacks like the billion laughs DoS.
++ * Coded byte streams. S8152479, CVE-2016-3550:
++ A fuzzed class file triggers an integer overflow in array access.
++ * Clean up lookup visibility. S8154475, CVE-2016-3587:
++ A fast path change allowed access to MH.invokeBasic via the public lookup
++ object. MH.iB does not do full type checking which can be used to create
++ type confusion.
++ * Bolster bytecode verification. S8155981, CVE-2016-3606:
++ The bytecode verifier checks that any classes' <init> method calls
++ super.<init> before returning. There is a way to bypass this requirement
++ which allows creating subclasses of classes that are not intended to be
++ extended.
++ * Persistent Parameter Processing. S8155985, CVE-2016-3598:
++ TOCTOU issue with types List passed into dropArguments() which can be used
++ to cause type confusion.
++ * Additional method handle validation. S8158571, CVE-2016-3610:
++ MHs.filterReturnValue does not check the filter parameter list size.
++ The single expected parameter is put in the last parameter position for
++ the filter MH allowing for type confusion.
++ * Enforce GCM limits. S8146514:
++ In GCM the counter should not be allowed to wrap (per the spec), since that
++ plus exposing the encrypted data could lead to leaking information.
++ * Construction of static protection domains. S8147771:
++ SubjectDomainCombiner does not honor the staticPermission field and will
++ create ProtectionDomains that vary with the system policy which may allow
++ unexpected permission sets.
++ * Share Class Data. S8150752:
++ Additional verification of AppCDS archives is required to prevent an
++ attacker from creating a type confusion situation.
++ * Enforce update ordering. S8149070:
++ If the GCM methods update() and updateAAD() are used out of order, the
++ security of the system can be weakened and an exception should be thrown
++ to warn the developer.
++ * Constrain AppCDS behavior. S8153312:
++ AppCDS does not create classloader constraints upon reloading classes
++ which could allow class spoofing under some circumstances.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 24 Jun 2016 14:49:34 +0200
++
++openjdk-8 (8u91-b14-3) unstable; urgency=medium
++
++ * Fix an issue with libatk-wrapper (Samuel Thibault). Closes: #827795.
++ * Update the KFreeBSD support patch (Steven Chamberlain). Closes: #825514.
++ * debian/patches/hotspot-JDK-8158260-ppc64el.patch: JDK-8158260, PPC64:
++ unaligned Unsafe.getInt can lead to the generation of illegal
++ instructions (Tiago Stürmer Daitx). LP: #1594393.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 24 Jun 2016 14:49:34 +0200
++
++openjdk-8 (8u91-b14-2ubuntu1) yakkety; urgency=medium
++
++ * Disable the atk bridge again on Ubuntu yakkety (failing TCK tests).
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 25 Apr 2016 17:44:32 +0200
++
++openjdk-8 (8u91-b14-2) unstable; urgency=medium
++
++ * Set initial VMThreadStackSize to 1600 on s390x.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 22 Apr 2016 23:21:34 +0200
++
++openjdk-8 (8u91-b14-1) unstable; urgency=high
++
++ * Drop unused g++-4.9 build dependency.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 21 Apr 2016 17:03:22 +0200
++
++openjdk-8 (8u91-b14-0ubuntu4) xenial; urgency=medium
++
++ * Update to 8u91-b14.
++ - Addresses CVE-2016-0686 (S8129952), CVE-2016-0687 (S8132051),
++ CVE-2016-3427 (S8144430), CVE-2016-0695 (S8138593),
++ CVE-2016-3425 (S8143167), CVE-2016-3426 (S8143945).
++ * Backport parts of 8132051 and 6926048 to fix the zero builds.
++ * Add a versioned break to the oracle-java8-installer package. The
++ package inflates the priority of the java alternatives again. See
++ https://lists.ubuntu.com/archives/ubuntu-devel/2016-April/039324.html.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 21 Apr 2016 16:25:37 +0200
++
++openjdk-8 (8u77-b03-3ubuntu4) xenial; urgency=medium
++
++ * Fix setting the update version (77). LP: #1550244.
++ * Really re-enable running the tests.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 20 Apr 2016 11:28:13 +0200
++
++openjdk-8 (8u77-b03-3ubuntu3) xenial; urgency=medium
++
++ * Build-depend on jtreg again, run the tests during the build.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 13 Apr 2016 19:17:37 +0200
++
++openjdk-8 (8u77-b03-3ubuntu2) xenial; urgency=medium
++
++ * Fix stripping the libjvm.so files.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 06 Apr 2016 13:41:39 +0200
++
++openjdk-8 (8u77-b03-3ubuntu1) xenial; urgency=medium
++
++ * Regenerate the control file.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 01 Apr 2016 20:40:42 +0200
++
++openjdk-8 (8u77-b03-3) unstable; urgency=medium
++
++ * Configure with --with-milestone and --with-user-release-suffix.
++ * Fix binary-indep only build. Closes: #819618.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 01 Apr 2016 18:31:13 +0200
++
++openjdk-8 (8u77-b03-2) unstable; urgency=medium
++
++ * Don't configure with --disable-precompiled-headers on arm64.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 31 Mar 2016 01:12:20 +0200
++
++openjdk-8 (8u77-b03-1) unstable; urgency=medium
++
++ * Update to 8u77-b03.
++ - Addresses CVE-2016-0636: Improve MethodHandle consistency.
++ * Build-depend on openjdk-8-jdk-headless <cross>.
++ * Disable the atk bridge again on Ubuntu xenial (failing TCK tests).
++ * Use versioned Build-Depends on autoconf (>= 2.69). Closes: #818626.
++ * Stop providing java-runtime, java-runtine-headless, java-compiler.
++ Closes: #815475.
++ * Fix logic for libgnome/libgconf recommendations. Closes: #813943.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 30 Mar 2016 00:10:38 +0200
++
++openjdk-8 (8u72-b15-4) unstable; urgency=medium
++
++ * Regenerate the control file.
++
++ [ Aurelian Jarno ]
++ * Reapply patch to fix jamvm on mips*, lost in version 8u72-b15-1.
++ * Build jamvm again on mips and mipsel.
++ * Build with GCC 5 on mips*.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 25 Feb 2016 14:20:49 +0100
++
++openjdk-8 (8u72-b15-3) unstable; urgency=medium
++
++ * Split out an openjdk-8-jdk-headless package.
++ * Don't run the tests on Ubuntu xenial (openjdk-8 now in main,
++ jtreg in universe).
++ * Recognize -dcevm as a jvm. Closes: #814421.
++ * Update libgconf/libgnome jre recommendations. Closes: #813943.
++ * Update package reference in README. Closes: #814605.
++ * Add french translation for policytool desktop file. Addresses: #813851.
++ * Install app icons again.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 25 Feb 2016 12:04:29 +0100
++
++openjdk-8 (8u72-b15-2) unstable; urgency=medium
++
++ * Bump the priority for OpenJDK 8 as the default.
++ * Stop building jamvm on mips and mipsel, fails to build.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 05 Feb 2016 17:31:08 +0100
++
++openjdk-8 (8u72-b15-1) unstable; urgency=medium
++
++ * Update to 8u72-b15.
++ - Addresses CVE-2016-0483 (8139017), CVE-2016-0494 (8140543),
++ CVE-2015-8126 (8143941), CVE-2016-0475 (8138589),
++ CVE-2016-0402 (8059054), CVE-2016-0466 (8133962),
++ CVE-2016-0448 (8130710), CVE-2015-7575 (8144773).
++ * Apply proposed patch for JDK-8141491: Unaligned memory access in Bits.c.
++ * Fix zero on m68k, introduced by 8046246 (patch suggested by Michael Karcher).
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 22 Jan 2016 11:03:19 +0100
++
++openjdk-8 (8u72-b05-5) unstable; urgency=medium
++
++ * Fix applying patches on arm64.
++ * Hack around the split KFreeBSD personality.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 15 Dec 2015 07:49:25 +0100
++
++openjdk-8 (8u72-b05-4) unstable; urgency=medium
++
++ * openjdk-8-jdk: Fix typo in sdk provides. Addresses: #803150.
++ * Fix cross builds.
++ * Build again using GCC 4.9 on mips*, fails to build with GCC 5.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 14 Dec 2015 21:54:43 +0100
++
++openjdk-8 (8u72-b05-3) unstable; urgency=medium
++
++ * Fix stripping packages (use bash instead of expr substring, Roderich
++ Schupp). Closes: #806421.
++ * Fix StackOverflowError on Zero JVM initialization on non x86 platforms,
++ when built with GCC 5.
++ * Build with GCC 5 everywhere.
++ * Build using giflib 5.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 30 Nov 2015 06:22:36 +0100
++
++openjdk-8 (8u72-b05-2) unstable; urgency=medium
++
++ * Update configury for sparc64 (Steven Chamberlain). Closes: #806202.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 26 Nov 2015 21:34:53 +0100
++
++openjdk-8 (8u72-b05-1) unstable; urgency=medium
++
++ * Update to 8u72-b05.
++ * Strip packages again, Debian infrastruction is fixed. Closes: #775760.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 31 Oct 2015 02:40:57 +0100
++
++openjdk-8 (8u66-b17-1) unstable; urgency=high
++
++ * Update to 8u66-b17.
++ * Security fixes:
++ - S8048030, CVE-2015-4734: Expectations should be consistent
++ - S8068842, CVE-2015-4803: Better JAXP data handling
++ - S8076339, CVE-2015-4903: Better handling of remote object invocation
++ - S8076383, CVE-2015-4835: Better CORBA exception handling
++ - S8076387, CVE-2015-4882: Better CORBA value handling
++ - S8076392, CVE-2015-4881: Improve IIOPInputStream consistency
++ - S8076413, CVE-2015-4883: Better JRMP message handling
++ - S8078427, CVE-2015-4842: More supportive home environment
++ - S8078440: Safer managed types
++ - S8080541: More direct property handling
++ - S8080688, CVE-2015-4860: Service for DGC services
++ - S8081744, CVE-2015-4868: Clear out list corner case
++ - S8081760: Better group dynamics
++ - S8086092. CVE-2015-4840: More palette improvements
++ - S8086733, CVE-2015-4893: Improve namespace handling
++ - S8087350: Improve array conversions
++ - S8103671, CVE-2015-4805: More objective stream classes
++ - S8103675: Better Binary searches
++ - S8129611: Accessbridge error handling improvement
++ - S8130078, CVE-2015-4911: Document better processing
++ - S8130185: More accessible access switch
++ - S8130193, CVE-2015-4806: Improve HTTP connections
++ - S8130864: Better server identity handling
++ - S8130891, CVE-2015-4843: (bf) More direct buffering
++ - S8131291, CVE-2015-4872: Perfect parameter patterning
++ - S8132042, CVE-2015-4844: Preserve layout presentation
++ * Strip packages again, Debian infrastruction is fixed. Closes: #775760.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 21 Oct 2015 22:48:28 +0200
++
++openjdk-8 (8u66-b01-6) unstable; urgency=medium
++
++ * Fix pulseaudio build on KFreeBSD.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 15 Oct 2015 02:07:13 +0200
++
++openjdk-8 (8u66-b01-5) unstable; urgency=medium
++
++ * Backport the proposed patch for 8036767, renaming the architecture
++ on ppc64el from ppc64 to ppc64le.
++ * JDK-8073139: PPC64: User-visible arch directory and os.arch value on
++ ppc64le cause issues with Java tooling (Tiago Stürmer Daitx).
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 08 Oct 2015 08:03:51 +0200
++
++openjdk-8 (8u66-b01-4) unstable; urgency=medium
++
++ * Update KFreeBSD patches (Steven Chamberlain). Closes: #761067.
++ * Really fix preprocessor defines for alpha and sh4.
++ * Re-enable the partial stripping for the jre packages.
++ * openjdk-jre-headless: Directly depend on libfontconfig1. Closes: #793210.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 13 Sep 2015 13:04:03 +0200
++
++openjdk-8 (8u66-b01-3) unstable; urgency=medium
++
++ * Build using GCC 4.9 for zero ports.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 05 Sep 2015 16:06:38 +0200
++
++openjdk-8 (8u66-b01-2) unstable; urgency=medium
++
++ * Fix installing the openjdk.desktop file when cautious-launch is available.
++ LP: #1448548.
++ * Define _alpha_ / _sh_ preprocessor macros instead of alpha / sh.
++ * Fix jdk gensrc build on x32.
++ * Re-enable the atk bridge for releases with a fixed atk bridge.
++ * Really apply the 32bit detection patch. Closes: #787072.
++ * Make derivatives builds the same as the parent distro. Closes: #797665.
++ * Add m68k support for Zero (Andreas Schwab).
++ * Sort the enums and the annotations in the package-tree.html files.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 04 Sep 2015 18:49:13 +0200
++
++openjdk-8 (8u66-b01-1) unstable; urgency=medium
++
++ * Update to 8u66-b01.
++ * Fix jdk build on x32.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 27 Jul 2015 13:46:58 +0200
++
++openjdk-8 (8u60~b22-1) unstable; urgency=medium
++
++ * Update to 8u60-b22.
++ * Don't use solaris compiler flags for linux sparc builds. Closes: #790370.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 22 Jun 2015 22:15:22 +0200
++
++openjdk-8 (8u45-b14-4) unstable; urgency=medium
++
++ * Fix 32bit detection for the build jdk; try to build again for mips
++ and mipsel (James Cowgill). Closes: #787072.
++ * Fix 8074312, enable hotspot builds on 4.x Linux kernels. Closes: #786417.
++ * openjdk-jre-headless: Add dependency on the package containing the
++ mountpoint binary. Closes: #787106.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 22 Jun 2015 22:15:22 +0200
++
++openjdk-8 (8u45-b14-3) unstable; urgency=medium
++
++ * Stop building for mips and mipsel. Addresses #785051.
++ * jdk: Fix freeNativeStringArray declaration. Closes: #785530.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 17 May 2015 16:13:11 +0200
++
++openjdk-8 (8u45-b14-2) unstable; urgency=medium
++
++ * Fix JamVM with 8u45. Closes: #766284.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 10 May 2015 19:28:41 +0200
++
++openjdk-8 (8u45-b14-1) unstable; urgency=medium
++
++ * Update to 8u45-b14.
++ * Update AArch64 to (post) 8u45-b14.
++ * Make libnss3-dev installable on precise (Thorsten Glaser). LP: #1411630.
++ * Only install the openjdk-java.desktop file when using cautious-launcher.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 19 Apr 2015 16:31:44 +0200
++
++openjdk-8 (8u40-b27-1) unstable; urgency=medium
++
++ * Update to 8u40-b27.
++ * Update AArch64 to (post) 8u40-b25.
++ * Fix libjavajpeg build using the system jpeg library. Closes: #760926.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 17 Mar 2015 01:19:45 +0100
++
++openjdk-8 (8u40~b22-1ubuntu1) vivid; urgency=medium
++
++ * Update AArch64 to 8u40-b22.
++ * Update the alpha float patch.
++ * Fix JDK-8067330, ZERO_ARCHDEF incorrectly defined for PPC/PPC64
++ architectures.
++ * Fix JDK-8067331, Zero: Atomic::xchg and Atomic::xchg_ptr need
++ full memory barrier.
++ * Build using OpenJDK-8.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 27 Jan 2015 14:59:00 +0100
++
++openjdk-8 (8u40~b22-1) unstable; urgency=medium
++
++ * Update to 8u40-b22.
++ * Fix build on mips64 and mips64el. Closes: #776295.
++ * Don't strip libjvm.so to prevent rejection by ftp-master (work around,
++ but no fix in the archive). Addresses: #775760.
++ * Fix jamvm to work with recent security updates. Closes: #766284.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 26 Jan 2015 16:59:37 +0100
++
++openjdk-8 (8u40~b21-1) unstable; urgency=medium
++
++ * Update to 8u40-b21.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 15 Jan 2015 12:14:18 +0100
++
++openjdk-8 (8u40~b10-1) unstable; urgency=medium
++
++ * Fix libjpeg runtime dependency.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 16 Oct 2014 08:38:13 +0200
++
++openjdk-8 (8u40~b09-1) unstable; urgency=medium
++
++ * Update to 8u40-b09.
++ * Update the AArch64 hotspot to 8u40-b09.
++ * Allow to build for Ubuntu 12.04 LTS.
++ * Change B-D to libjpeg-dev to finish the transition to libjpeg-turbo
++ (Ondřej Surý). Closes: #763490.
++ * Backport the fix for 8017773 OpenJDK returns incorrect TrueType
++ font metrics. Closes: #762323.
++ * Depend on libnss3 instead of libnss3-1d for recent releases.
++ Addresses: #760122.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 14 Oct 2014 12:39:18 +0200
++
++openjdk-8 (8u40~b04-2) unstable; urgency=medium
++
++ * Remove AArch64 patch applied upstream.
++ * Update the kfresbsd jdk patch, still not forwarded upstream.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 09 Sep 2014 17:08:32 +0200
++
++openjdk-8 (8u40~b04-1) experimental; urgency=medium
++
++ * Update to 8u40-b04.
++ * Backport 8050942, implement template interpreter for ppc64le.
++ * Build-depend on systemtap-sdt-dev.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 03 Sep 2014 21:11:27 +0200
++
++openjdk-8 (8u20-b26-1) experimental; urgency=medium
++
++ * 8u20 build 26 is the final 8u20 release.
++ * Update the AArch64 hotspot.
++ * Fix applying the kfreebsd patch for JamVM.
++ * x32 build fixes.
++ * Allow openjdk-8-jdk as an alternative build dependency.
++ * Adjust timeouts for jtreg runs.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 20 Aug 2014 10:34:55 +0200
++
++openjdk-8 (8u20~b26-1) experimental; urgency=medium
++
++ * Update to 8u20-b26.
++ * Update to JamVM 2.0.0.
++ * Update to IcedTea-Sound 1.0.1.
++ * Update toplevel configury to recognize zero archs alpha, mips*,
++ m68k, sh4.
++ * Update kfreebsd-support patches (Steven Chamberlain).
++ * Fix an uninitialized memory issue in adlc (Fridrich Strba).
++ * Move libjavagtk into the -jre package.
++ * Use the system libpcsclite library.
++ * Fix typo, ignoring boot cycle builds (Emmanuel Bourg).
++ * Derive the update version and the build number from the package
++ version (Emmanuel Bourg).
++ * Call quilt with --quiltrc -. Closes: #755710.
++ * openjdk-8-jdk: Fix src.zip symlink. Closes: #755869.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 31 Jul 2014 19:51:35 +0200
++
++openjdk-8 (8u20~b20-2) experimental; urgency=medium
++
++ * Work around OpenJDK's build system which is not robust enough
++ to accept commas in *FLAGS.
++ * Pass extra flags for non-hotspot builds.
++ * Fix the zero build on i386.
++ * Don't add extra symlinks for the jni_{md,jawt}.h header files.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 11 Jul 2014 20:30:54 +0200
++
++openjdk-8 (8u20~b20-1) experimental; urgency=medium
++
++ * Initial OpenJDK 8 packaging, based on 8u20-b20.
++ * Fix hotspot build system for GNU make 4.0 (Emmanuel Bourg).
++ * Drop rhino (build) dependencies (Emmanuel Bourg).
++ * Add java8 provides (Emmanuel Bourg).
++ * Add IcedTea patches to build with external jpeg, png and lcms
++ libraries (Emmanuel Bourg).
++ * Add keywords to the desktop files (Emmanuel Bourg).
++ * Remove the suggested dependency on sun-java6-fonts ((Emmanuel Bourg).
++ * Build hotspot on ppc64 and ppc64el.
++ * Add the IcedTea Sound tarball.
++ * Don't strip files when building the images.
++ * Update patches to pass the extra flags to the libsig and libsaproc builds.
++ * Use dh_strip's knowledge about build ids when available.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 09 Jul 2014 20:11:18 +0200
++
++openjdk-7 (7u55-2.4.7-2) unstable; urgency=medium
++
++ * Fix the quoting of configure flags for the zero build.
++ * Update the java-access-bridge-security patch (Raphael Geissert).
++ * Don't hard code the compiler names in the AArch64 hotspot build.
++ * Build using GCC 4.9 where available.
++ * Add MIPS64(el) support (Yunqiang Su). Closes: #746207.
++ * Suggest fonts-indic instead of ttf-indic-fonts. Closes: #747694.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 16 May 2014 19:12:42 +0200
++
++openjdk-7 (7u55-2.4.7-1) unstable; urgency=high
++
++ * IcedTea7 2.4.7 release.
++ * Security fixes
++ - S8023046: Enhance splashscreen support.
++ - S8025005: Enhance CORBA initializations.
++ - S8025010, CVE-2014-2412: Enhance AWT contexts.
++ - S8025030, CVE-2014-2414: Enhance stream handling.
++ - S8025152, CVE-2014-0458: Enhance activation set up.
++ - S8026067: Enhance signed jar verification.
++ - S8026163, CVE-2014-2427: Enhance media provisioning.
++ - S8026188, CVE-2014-2423: Enhance envelope factory.
++ - S8026200: Enhance RowSet Factory.
++ - S8026716, CVE-2014-2402: (aio) Enhance asynchronous channel handling.
++ - S8026736, CVE-2014-2398: Enhance Javadoc pages.
++ - S8026797, CVE-2014-0451: Enhance data transfers.
++ - S8026801, CVE-2014-0452: Enhance endpoint addressing.
++ - S8027766, CVE-2014-0453: Enhance RSA processing.
++ - S8027775: Enhance ICU code.
++ - S8027841, CVE-2014-0429: Enhance pixel manipulations.
++ - S8028385: Enhance RowSet Factory.
++ - S8029282, CVE-2014-2403: Enhance CharInfo set up.
++ - S8029286: Enhance subject delegation.
++ - S8029699: Update Poller demo.
++ - S8029730: Improve audio device additions.
++ - S8029735: Enhance service mgmt natives.
++ - S8029740, CVE-2014-0446: Enhance handling of loggers.
++ - S8029745, CVE-2014-0454: Enhance algorithm checking.
++ - S8029750: Enhance LCMS color processing (LCMS 2 only).
++ - S8029760, CVE-2013-6629: Enhance AWT image libraries (in-tree libjpeg).
++ - S8029844, CVE-2014-0455: Enhance argument validation.
++ - S8029854, CVE-2014-2421: Enhance JPEG decodings.
++ - S8029858, CVE-2014-0456: Enhance array copies.
++ - S8030731, CVE-2014-0460: Improve name service robustness.
++ - S8031330: Refactor ObjectFactory.
++ - S8031335, CVE-2014-0459: Better color profiling.
++ - S8031352, CVE-2013-6954: Enhance PNG handling (in-tree libpng).
++ - S8031394, CVE-2014-0457: (sl) Fix exception handling in ServiceLoader.
++ - S8031395: Enhance LDAP processing.
++ - S8032686, CVE-2014-2413: Issues with method invoke.
++ - S8033618, CVE-2014-1876: Correct logging output.
++ - S8034926, CVE-2014-2397: Attribute classes properly.
++ - S8036794, CVE-2014-0461: Manage JavaScript instances.
++ * AArch64 fixes.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 16 Apr 2014 15:37:40 +0200
++
++openjdk-7 (7u51-2.4.6-1) unstable; urgency=medium
++
++ * IcedTea7 2.4.6 release.
++ * Explicitly use AC_MAINTAINER_MODE and automake-1.11 to create the
++ debian .orig tarball. Addresses: #740289.
++ * Apply patch from upstream to fix bold fonts in Swing applications using
++ GTK L&F (Ryan Tandy). LP: #937200.
++ * Explicitly build-depend on libkrb5-dev.
++ * On AArch64 don't use the hotsport backport for the zero build.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 01 Apr 2014 09:25:19 +0200
++
++openjdk-7 (7u51-2.4.6~pre1-1) unstable; urgency=medium
++
++ * IcedTea7 2.4.6 prerelease.
++ * Fix icedtea-web build failure on kfreebsd-* (unable to find
++ sun.security.util.SecurityConstants). Steven Chamberlain. Closes: #739032.
++ * Update the AArch64 Hotspot.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 27 Mar 2014 17:24:45 +0100
++
++openjdk-7 (7u51-2.4.5-2) unstable; urgency=medium
++
++ * Update the KFreeBSD patch (Steven Chamberlain). Closes: #736291.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 04 Feb 2014 13:28:10 +0100
++
++openjdk-7 (7u51-2.4.5-1) unstable; urgency=medium
++
++ * IcedTea7 2.4.5 release.
++ * Build Hotspot client and server vms for AArch64.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 31 Jan 2014 06:13:20 -0500
++
++openjdk-7 (7u51-2.4.4-1) unstable; urgency=medium
++
++ * IcedTea7 2.4.4 release.
++ * Security fixes
++ - S6727821: Enhance JAAS Configuration.
++ - S7068126, CVE-2014-0373: Enhance SNMP statuses.
++ - S8010935: Better XML handling.
++ - S8011786, CVE-2014-0368: Better applet networking.
++ - S8021257, S8025022, CVE-2013-5896 : com.sun.corba.se.** should be
++ on restricted package list.
++ - S8021271, S8021266, CVE-2014-0408: Better buffering in ObjC code.
++ - S8022904: Enhance JDBC Parsers.
++ - S8022927: Input validation for byte/endian conversions.
++ - S8022935: Enhance Apache resolver classes.
++ - S8022945: Enhance JNDI implementation classes.
++ - S8023057: Enhance start up image display.
++ - S8023069, CVE-2014-0411: Enhance TLS connections.
++ - S8023245, CVE-2014-0423: Enhance Beans decoding.
++ - S8023301: Enhance generic classes.
++ - S8023338: Update jarsigner to encourage timestamping.
++ - S8023672: Enhance jar file validation.
++ - S8024302: Clarify jar verifications.
++ - S8024306, CVE-2014-0416: Enhance Subject consistency.
++ - S8024530: Enhance font process resilience.
++ - S8024867: Enhance logging start up.
++ - S8025014: Enhance Security Policy.
++ - S8025018, CVE-2014-0376: Enhance JAX-P set up.
++ - S8025026, CVE-2013-5878: Enhance canonicalization.
++ - S8025034, CVE-2013-5907: Improve layout lookups.
++ - S8025448: Enhance listening events.
++ - S8025758, CVE-2014-0422: Enhance Naming management.
++ - S8025767, CVE-2014-0428: Enhance IIOP Streams.
++ - S8026172: Enhance UI Management.
++ - S8026176: Enhance document printing.
++ - S8026193, CVE-2013-5884: Enhance CORBA stub factories.
++ - S8026204: Enhance auth login contexts.
++ - S8026417, CVE-2013-5910: Enhance XML canonicalization.
++ - S8026502: java/lang/invoke/MethodHandleConstants.java fails on all
++ platforms.
++ - S8027201, CVE-2014-0376: Enhance JAX-P set up.
++ - S8029507, CVE-2013-5893: Enhance JVM method processing.
++ - S8029533: REGRESSION: closed/java/lang/invoke/8008140/Test8008140.java
++ fails agains.
++ * Remove alpha from stage1_gcj_archs.
++ * Use the langtools and jdk tarballs as provided by IcedTea.
++ * Hotspot is dead on sparc. Build the zero interpreter as the default.
++ * Blindly update the KF***BSD patches.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 15 Jan 2014 10:34:34 +0100
++
++openjdk-7 (7u45-2.4.3-5) unstable; urgency=medium
++
++ * Run the jtreg tests on powerpcspe, tested by Roland Stigge.
++ * Fix zero builds on 64k page kernel configs.
++ * Fix more IcedTea bits to build on x32.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 11 Jan 2014 13:55:34 +0100
++
++openjdk-7 (7u45-2.4.3-4) unstable; urgency=low
++
++ * Re-enable running the testsuite on powerpc.
++ * Run the testsuite on AArch64.
++ * Fix IcedTea bits to build on x32.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 22 Dec 2013 21:20:10 +0100
++
++openjdk-7 (7u45-2.4.3-3) unstable; urgency=low
++
++ * Don't build on s390 anymore.
++ * Update hotspot-mips-align patch (Aurelien Jarno). Closes: #732528).
++ * Build for ppc64el.
++ * Try to build zero on x32.
++ * Configure with --enable-zero on sparc and sparc64.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 20 Dec 2013 14:42:38 +0100
++
++openjdk-7 (7u45-2.4.3-2.3) unstable; urgency=medium
++
++ * Disable bootstrap build on alpha. Closes: #719671.
++ * Disable running the jdk jtreg tests on the hotspot architectures.
++ Hanging on the buildds.
++ * Re-enable the jexec patch, program logic confused by running jexec
++ outside the assumed java home. Closes: #731961.
++ * Don't apply the s390 patches on s390x. s390 is successfully dead.
++ * Fix zero builds on little endian architectures, taken from the trunk.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 12 Dec 2013 18:24:44 +0100
++
++openjdk-7 (7u45-2.4.3-1) unstable; urgency=medium
++
++ * IcedTea7 2.4.3 release.
++ * Security fixes:
++ - S8006900, CVE-2013-3829: Add new date/time capability.
++ - S8008589: Better MBean permission validation.
++ - S8011071, CVE-2013-5780: Better crypto provider handling.
++ - S8011081, CVE-2013-5772: Improve jhat.
++ - S8011157, CVE-2013-5814: Improve CORBA portablility.
++ - S8012071, CVE-2013-5790: Better Building of Beans.
++ - S8012147: Improve tool support.
++ - S8012277: CVE-2013-5849: Improve AWT DataFlavor.
++ - S8012425, CVE-2013-5802: Transform TransformerFactory.
++ - S8013503, CVE-2013-5851: Improve stream factories.
++ - S8013506: Better Pack200 data handling.
++ - S8013510, CVE-2013-5809: Augment image writing code.
++ - S8013514: Improve stability of cmap class.
++ - S8013739, CVE-2013-5817: Better LDAP resource management.
++ - S8013744, CVE-2013-5783: Better tabling for AWT.
++ - S8014085: Better serialization support in JMX classes.
++ - S8014093, CVE-2013-5782: Improve parsing of images.
++ - S8014098: Better profile validation.
++ - S8014102, CVE-2013-5778: Improve image conversion.
++ - S8014341, CVE-2013-5803: Better service from Kerberos servers.
++ - S8014349, CVE-2013-5840: (cl) Class.getDeclaredClass problematic
++ in some class loader configurations.
++ - S8014530, CVE-2013-5825: Better digital signature processing.
++ - S8014534: Better profiling support.
++ - S8014987, CVE-2013-5842: Augment serialization handling.
++ - S8015614: Update build settings.
++ - S8015731: Subject java.security.auth.subject to improvements.
++ - S8015743, CVE-2013-5774: Address internet addresses.
++ - S8016256: Make finalization final.
++ - S8016653, CVE-2013-5804: javadoc should ignore ignoreable characters
++ in names.
++ - S8016675, CVE-2013-5797: Make Javadoc pages more robust.
++ - S8017196, CVE-2013-5850: Ensure Proxies are handled appropriately.
++ - S8017287, CVE-2013-5829: Better resource disposal.
++ - S8017291, CVE-2013-5830: Cast Proxies Aside.
++ - S8017298, CVE-2013-4002: Better XML support.
++ - S8017300, CVE-2013-5784: Improve Interface Implementation.
++ - S8017505, CVE-2013-5820: Better Client Service.
++ - S8019292: Better Attribute Value Exceptions.
++ - S8019617: Better view of objects.
++ - S8020293: JVM crash.
++ - S8021275, CVE-2013-5805: Better screening for ScreenMenu.
++ - S8021282, CVE-2013-5806: Better recycling of object instances.
++ - S8021286: Improve MacOS resourcing.
++ - S8021290, CVE-2013-5823: Better signature validation.
++ - S8022931, CVE-2013-5800: Enhance Kerberos exceptions.
++ - S8022940: Enhance CORBA translations.
++ - S8023683: Enhance class file parsing.
++ * Fix build failure on mips* (Aurelien Jarno). Closes: #729448).
++ * Run autoreconf. Closes: #724083.
++ * Merge the -jre-lib package into -jre-headless. Simplifies the packaging
++ and the savings were not as big as wanted, because the rt.jar is still
++ architecture dependant. Closes: #641049, #722510.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 08 Dec 2013 23:22:06 +0100
++
++openjdk-7 (7u25-2.3.12-4ubuntu3) saucy; urgency=low
++
++ * Apply missing patch to fix arm64/AArch64 detection.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 11 Oct 2013 17:51:33 +0200
++
++openjdk-7 (7u25-2.3.12-4ubuntu2) saucy; urgency=low
++
++ * openjdk-jre-headless: Loosen the dependency on -jre-lib.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 09 Oct 2013 16:29:15 +0200
++
++openjdk-7 (7u25-2.3.12-4ubuntu1) saucy; urgency=low
++
++ * Regenerate the control file.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 16 Aug 2013 12:09:47 +0200
++
++openjdk-7 (7u25-2.3.12-4) unstable; urgency=low
++
++ * Add the hotspot patches for AArch64, which apparently were not
++ included in the IcedTea release by intent.
++ * Don't interpret arm64 as an ARM architecture, but as AArch64. So
++ much for Debian calling this port arm64 ...
++ * Use host macros instead of build macros for corba and hotspot config.
++ * Re-add multiarch library directories to the default library path.
++ Closes: #712567.
++ * Enable the two-stage build on alpha. Closes: #719671.
++ * Build for powerpcspe (Roland Stigge). Closes: #712686.
++ * Recommend fonts-dejavu-extra instead of ttf-dejavu-extra for current
++ releases. Closes: #718839.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 15 Aug 2013 21:26:51 +0200
++
++openjdk-7 (7u25-2.3.12-3) unstable; urgency=low
++
++ * Fix kFreeBSD builds (Thanks to Christoph Egger for his help).
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Mon, 12 Aug 2013 00:39:41 +0200
++
++openjdk-7 (7u25-2.3.12-2) unstable; urgency=low
++
++ [ Matthias Klose ]
++ * Regenerate the hotspot-s390 patch.
++
++ [ Damien Raude-Morvan ]
++ * Update kfreebsd patches.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 03 Aug 2013 20:22:41 +0200
++
++openjdk-7 (7u25-2.3.12-1) unstable; urgency=low
++
++ * IcedTea7 2.3.12 release.
++ * Don't build with pulseaudio on arm64.
++ * Disable bootstraped build on s390 and sparc.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 02 Aug 2013 15:55:01 +0200
++
++openjdk-7 (7u25-2.3.10-2ubuntu1) saucy; urgency=low
++
++ * Regenerate the control file.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 15 Jul 2013 23:59:45 +0200
++
++openjdk-7 (7u25-2.3.10-2) unstable; urgency=low
++
++ [ Matthias Klose ]
++ * Fix gcj-jdk build dependency on ia64 and s390.
++ * Build zero on arm64.
++
++ [ Gianfranco Costamagna ]
++ * Fix build failure on kfreebsd (Closes: #714528)
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 30 Jun 2013 17:12:28 +0200
++
++openjdk-7 (7u25-2.3.10-1) unstable; urgency=high
++
++ * IcedTea7 2.3.10 release.
++ * Security fixes
++ * S6741606, CVE-2013-2407: Integrate Apache Santuario.
++ * S7158805, CVE-2013-2445: Better rewriting of nested subroutine calls.
++ * S7170730, CVE-2013-2451: Improve Windows network stack support.
++ * S8000638, CVE-2013-2450: Improve deserialization.
++ * S8000642, CVE-2013-2446: Better handling of objects for transportation.
++ * S8001032: Restrict object access.
++ * S8001033, CVE-2013-2452: Refactor network address handling in virtual
++ machine identifiers.
++ * S8001034, CVE-2013-1500: Memory management improvements.
++ * S8001038, CVE-2013-2444: Resourcefully handle resources.
++ * S8001043: Clarify definition restrictions.
++ * S8001308: Update display of applet windows.
++ * S8001309: Better handling of annotation interfaces.
++ * S8001318, CVE-2013-2447: Socket.getLocalAddress not consistent with
++ InetAddress.getLocalHost.
++ * S8001330, CVE-2013-2443: Improve on checking order (non-Zero builds only).
++ * S8003703, CVE-2013-2412: Update RMI connection dialog box.
++ * S8004288, CVE-2013-2449: (fs) Files.probeContentType problems.
++ * S8004584: Augment applet contextualization.
++ * S8005007: Better glyph processing.
++ * S8006328, CVE-2013-2448: Improve robustness of sound classes.
++ * S8006611: Improve scripting.
++ * S8007467: Improve robustness of JMX internal APIs.
++ * S8007471: Improve MBean notifications.
++ * S8007812, CVE-2013-2455: (reflect) Class.getEnclosingMethod problematic for some classes.
++ * S8007925: Improve cmsStageAllocLabV2ToV4curves.
++ * S8007926: Improve cmsPipelineDup.
++ * S8007927: Improve cmsAllocProfileSequenceDescription.
++ * S8007929: Improve CurvesAlloc.
++ * S8008120, CVE-2013-2457: Improve JMX class checking.
++ * S8008124, CVE-2013-2453: Better compliance testing.
++ * S8008128: Better API coherence for JMX.
++ * S8008132, CVE-2013-2456: Better serialization support.
++ * S8008585: Better JMX data handling.
++ * S8008593: Better URLClassLoader resource management.
++ * S8008603: Improve provision of JMX providers.
++ * S8008607: Better input checking in JMX.
++ * S8008611: Better handling of annotations in JMX.
++ * S8008615: Improve robustness of JMX internal APIs.
++ * S8008623: Better handling of MBeanServers.
++ * S8008744, CVE-2013-2407: Rework part of fix for JDK-6741606.
++ * S8008982: Adjust JMX for underlying interface changes.
++ * S8009004: Better implementation of RMI connections.
++ * S8009008: Better manage management-api.
++ * S8009013: Better handling of T2K glyphs.
++ * S8009034: Improve resulting notifications in JMX.
++ * S8009038: Improve JMX notification support.
++ * S8009057, CVE-2013-2448: Improve MIDI event handling.
++ * S8009067: Improve storing keys in KeyStore.
++ * S8009071, CVE-2013-2459: Improve shape handling.
++ * S8009235: Improve handling of TSA data.
++ * S8009424, CVE-2013-2458: Adapt Nashorn to JSR-292 implementation change.
++ * S8009554, CVE-2013-2454: Improve SerialJavaObject.getFields.
++ * S8009654: Improve stability of cmsnamed.
++ * S8010209, CVE-2013-2460: Better provision of factories.
++ * S8011243, CVE-2013-2470: Improve ImagingLib.
++ * S8011248, CVE-2013-2471: Better Component Rasters.
++ * S8011253, CVE-2013-2472: Better Short Component Rasters.
++ * S8011257, CVE-2013-2473: Better Byte Component Rasters.
++ * S8012375, CVE-2013-1571: Improve Javadoc framing.
++ * S8012421: Better positioning of PairPositioning.
++ * S8012438, CVE-2013-2463: Better image validation.
++ * S8012597, CVE-2013-2465: Better image channel verification.
++ * S8012601, CVE-2013-2469: Better validation of image layouts.
++ * S8014281, CVE-2013-2461: Better checking of XML signature.
++ * S8015997: Additional improvement in Javadoc framing.
++ * Breaks icedtea-netx (<< 1.4-2).
++
++ -- Matthias Klose <doko@debian.org> Fri, 28 Jun 2013 16:55:32 +0200
++
++openjdk-7 (7u21-2.3.9-5) unstable; urgency=low
++
++ * Update kFreeBSD support (Guido Guenther). Closes: #708818.
++ * Stop building the transitional cacao package for sid.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 18 May 2013 20:13:33 +0200
++
++openjdk-7 (7u21-2.3.9-4) unstable; urgency=high
++
++ * Build the transitional cacao package for sid as well. Apparently
++ some buildds are not updated to list wheezy as the code name for
++ the current distribution.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 02 May 2013 03:27:44 +0200
++
++openjdk-7 (7u21-2.3.9-3) unstable; urgency=high
++
++ * Disable the cacao build again, causing build failures on i386 and s390.
++ * Build a transitional cacao jre package instead.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 30 Apr 2013 00:27:05 +0200
++
++openjdk-7 (7u21-2.3.9-2) unstable; urgency=high
++
++ * On ia64, use gcj-4.7 for the bootstrap build.
++ * Drop the cacao jre from recommends to suggests.
++ * Re-enable cacao, was enabled in the 2.1.x series.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 27 Apr 2013 01:17:16 +0200
++
++openjdk-7 (7u21-2.3.9-1) unstable; urgency=high
++
++ * IcedTea7 2.3.9 release.
++ * Security fixes:
++ - S6657673, CVE-2013-1518: Issues with JAXP.
++ - S7200507: Refactor Introspector internals.
++ - S8000724, CVE-2013-2417: Improve networking serialization.
++ - S8001031, CVE-2013-2419: Better font processing.
++ - S8001040, CVE-2013-1537: Rework RMI model.
++ - S8001322: Refactor deserialization.
++ - S8001329, CVE-2013-1557: Augment RMI logging.
++ - S8003335: Better handling of Finalizer thread.
++ - S8003445: Adjust JAX-WS to focus on API.
++ - S8003543, CVE-2013-2415: Improve processing of MTOM attachments.
++ - S8004261: Improve input validation.
++ - S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames.
++ - S8004986, CVE-2013-2383: Better handling of glyph table.
++ - S8004987, CVE-2013-2384: Improve font layout.
++ - S8004994, CVE-2013-1569: Improve checking of glyph table.
++ - S8005432: Update access to JAX-WS.
++ - S8005943: (process) Improved Runtime.exec.
++ - S8006309: More reliable control panel operation.
++ - S8006435, CVE-2013-2424: Improvements in JMX.
++ - S8006790: Improve checking for windows.
++ - S8006795: Improve font warning messages.
++ - S8007406: Improve accessibility of AccessBridge.
++ - S8007617, CVE-2013-2420: Better validation of images.
++ - S8007667, CVE-2013-2430: Better image reading.
++ - S8007918, CVE-2013-2429: Better image writing.
++ - S8008140: Better method handle resolution.
++ - S8009049, CVE-2013-2436: Better method handle binding.
++ - S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap.
++ - S8009305, CVE-2013-0401: Improve AWT data transfer.
++ - S8009677, CVE-2013-2423: Better setting of setters.
++ - S8009699, CVE-2013-2421: Methodhandle lookup.
++ - S8009814, CVE-2013-1488: Better driver management.
++ - S8009857, CVE-2013-2422: Problem with plugin.
++ * Backports:
++ - S7130662: GTK file dialog crashes with a NPE.
++ * Bug fixes
++ - PR1363: Fedora 19 / rawhide FTBFS SIGILL.
++ - PR1401: Fix Zero build on 2.3.8.
++ - Fix offset problem in ICU LETableReference.
++ - Change -Werror fix to preserve OpenJDK default.
++ - PR1303: Correct #ifdef to #if.
++ - PR1404: Failure to bootstrap with ecj 4.2.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 22 Apr 2013 03:27:08 +0200
++
++openjdk-7 (7u17-2.3.8-2) experimental; urgency=low
++
++ * Remove Torsten Werner as uploader.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 01 Apr 2013 00:39:58 +0200
++
++openjdk-7 (7u17-2.3.8-1ubuntu1) raring; urgency=low
++
++ * Regenerate the control file.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 31 Mar 2013 20:10:05 +0200
++
++openjdk-7 (7u17-2.3.8-1) experimental; urgency=low
++
++ * IcedTea7 2.3.8 release.
++ * Security fixes:
++ - S8007014, CVE-2013-0809: Improve image handling.
++ - S8007675, CVE-2013-1493: Improve color conversion.
++ * Backports:
++ - S8002344: Krb5LoginModule config class does not return proper KDC list
++ from DNS.
++ - S8004344: Fix a crash in ToolkitErrorHandler() in XlibWrapper.c.
++ - S8006179: JSR292 MethodHandles lookup with interface using findVirtual().
++ - S8006882: Proxy generated classes in sun.proxy package breaks JMockit.
++ * Bug fixes:
++ - PR1303: Correct #ifdef to #if.
++ - PR1340: Simplify the rhino class rewriter to avoid use of concurrency.
++ - Revert 7017193 and add the missing free call, until a better fix is ready.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 31 Mar 2013 14:31:11 +0200
++
++openjdk-7 (7u15-2.3.7-1ubuntu2) raring; urgency=low
++
++ * Security fixes:
++ - S8007014, CVE-2013-0809: Improve image handling
++ - S8007675, CVE-2013-1493: Improve color conversion
++ - debian/rules: updated to add 8007014.patch and 8007675.patch
++
++ -- Jamie Strandboge <jamie@ubuntu.com> Wed, 06 Mar 2013 14:12:03 -0600
++
++openjdk-7 (7u15-2.3.7-1ubuntu1) raring; urgency=low
++
++ * Regenerate the control file.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 20 Feb 2013 23:59:54 +0100
++
++openjdk-7 (7u15-2.3.7-1) experimental; urgency=low
++
++ * IcedTea7 2.3.7 release.
++ * Security fixes:
++ - S8004937, CVE-2013-1484: Improve proxy construction.
++ - S8006439, CVE-2013-1485: Improve MethodHandles coverage.
++ - S8006446, CVE-2013-1486: Restrict MBeanServer access.
++ - S8006777, CVE-2013-0169: Improve TLS handling of invalid messages.
++ - S8007688: Blacklist known bad certificate.
++ * Backports:
++ - S8007393: Possible race condition after JDK-6664509.
++ - S8007611: logging behavior in applet changed.
++ * For zero builds, use the same hotspot version as in 2.1.6.
++ * Reenable bootstrap builds, except for alpha.
++ * Explicitly disable building on mips/mipsel. Not supported by the
++ Debian OpenJDK maintainers, the Debian mips porters, or the Debian
++ Java team.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 20 Feb 2013 23:33:58 +0100
++
++openjdk-7 (7u13-2.3.6-1) experimental; urgency=low
++
++ * IcedTea7 2.3.6 release.
++ - Disable bootstrap builds, currently broken in IcedTea.
++ * Security fixes:
++ - S6563318, CVE-2013-0424: RMI data sanitization.
++ - S6664509, CVE-2013-0425: Add logging context.
++ - S6664528, CVE-2013-0426: Find log level matching its name or value given
++ at construction time.
++ - S6776941: CVE-2013-0427: Improve thread pool shutdown.
++ - S7141694, CVE-2013-0429: Improving CORBA internals.
++ - S7173145: Improve in-memory representation of splashscreens.
++ - S7186945: Unpack200 improvement.
++ - S7186946: Refine unpacker resource usage.
++ - S7186948: Improve Swing data validation.
++ - S7186952, CVE-2013-0432: Improve clipboard access.
++ - S7186954: Improve connection performance.
++ - S7186957: Improve Pack200 data validation.
++ - S7192392, CVE-2013-0443: Better validation of client keys.
++ - S7192393, CVE-2013-0440: Better Checking of order of TLS Messages.
++ - S7192977, CVE-2013-0442: Issue in toolkit thread.
++ - S7197546, CVE-2013-0428: (proxy) Reflect about creating reflective proxies.
++ - S7200491: Tighten up JTable layout code.
++ - S7200500: Launcher better input validation.
++ - S7201064: Better dialogue checking.
++ - S7201066, CVE-2013-0441: Change modifiers on unused fields.
++ - S7201068, CVE-2013-0435: Better handling of UI elements.
++ - S7201070: Serialization to conform to protocol.
++ - S7201071, CVE-2013-0433: InetSocketAddress serialization issue.
++ - S8000210: Improve JarFile code quality.
++ - S8000537, CVE-2013-0450: Contextualize RequiredModelMBean class.
++ - S8000540, CVE-2013-1475: Improve IIOP type reuse management.
++ - S8000631, CVE-2013-1476: Restrict access to class constructor.
++ - S8001235, CVE-2013-0434: Improve JAXP HTTP handling.
++ - S8001242: Improve RMI HTTP conformance.
++ - S8001307: Modify ACC_SUPER behavior.
++ - S8001972, CVE-2013-1478: Improve image processing.
++ - S8002325, CVE-2013-1480: Improve management of images.
++ * Fix font suggestion for indic fonts in wheezy.
++ * Fix fontconfig definitions for japanese and korean fonts, fixing
++ compilation of the fontconfig file.
++ * Add Built-Using: rhino attribute for the -lib package.
++ * Don't use concurrent features to rewrite the rhino jar file.
++ * Enable class data sharing for the hotspot server VM.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 12 Feb 2013 20:59:48 +0100
++
++openjdk-7 (7u9-2.3.4-1) experimental; urgency=low
++
++ * IcedTea7 2.3.4 release.
++ * Security fixes
++ - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries.
++ - S8006017, CVE-2013-0422: Improve lookup resolutions.
++ - S8006125: Update MethodHandles library interactions.
++ * Bug fixes
++ - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit
++ shifts.
++ - G422525: Fix building with PaX enabled kernels.
++
++ [ Matthias Klose ]
++ * Loosen OpenGL dependency. Closes: #695028.
++ * Fix error parsing drop files parameter from pcmanfm (Alberto Fernández
++ Martínez). Closes: #695992.
++
++ [ Thorsten Glaser ]
++ * debian/rules: Use gcj-4.6-jdk for m68k builds.
++ * d/patches/text-relocations.patch: build with -fPIC on all archs.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 15 Jan 2013 23:38:48 +0100
++
++openjdk-7 (7u9-2.3.3-1) experimental; urgency=low
++
++ * Upload to experimental.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 17 Oct 2012 15:16:51 +0200
++
++openjdk-7 (7u9-2.3.3-0ubuntu1) quantal-security; urgency=low
++
++ * IcedTea7 2.3.3 release.
++ * Security fixes
++ - S6631398, CVE-2012-3216: FilePermission improved path checking.
++ - S7093490: adjust package access in rmiregistry.
++ - S7143535, CVE-2012-5068: ScriptEngine corrected permissions.
++ - S7158796, CVE-2012-5070: Tighten properties checking in EnvHelp.
++ - S7158807: Revise stack management with volatile call sites.
++ - S7163198, CVE-2012-5076: Tightened package accessibility.
++ - S7167656, CVE-2012-5077: Multiple Seeders are being created.
++ - S7169884, CVE-2012-5073: LogManager checks do not work correctly for
++ sub-types.
++ - S7169887, CVE-2012-5074: Tightened package accessibility.
++ - S7169888, CVE-2012-5075: Narrowing resource definitions in JMX RMI
++ connector.
++ - S7172522, CVE-2012-5072: Improve DomainCombiner checking.
++ - S7186286, CVE-2012-5081: TLS implementation to better adhere to RFC.
++ - S7189103, CVE-2012-5069: Executors needs to maintain state.
++ - S7189490: More improvements to DomainCombiner checking.
++ - S7189567, CVE-2012-5085: java net obselete protocol.
++ - S7192975, CVE-2012-5071: Issue with JMX reflection.
++ - S7195194, CVE-2012-5084: Better data validation for Swing.
++ - S7195549, CVE-2012-5087: Better bean object persistence.
++ - S7195917, CVE-2012-5086: XMLDecoder parsing at close-time should be
++ improved.
++ - S7195919, CVE-2012-5979: (sl) ServiceLoader can throw CCE without
++ needing to create instance.
++ - S7196190, CVE-2012-5088: Improve method of handling MethodHandles.
++ - S7198296, CVE-2012-5089: Refactor classloader usage.
++ - S7158800: Improve storage of symbol tables.
++ - S7158801: Improve VM CompileOnly option.
++ - S7158804: Improve config file parsing.
++ - S7198606, CVE-2012-4416: Improve VM optimization.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 17 Oct 2012 13:27:47 +0200
++
++openjdk-7 (7u7-2.3.2a-1ubuntu1) quantal; urgency=low
++
++ * Build a transitional icedtea-7-jre-cacao package to ease upgrades.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 19 Sep 2012 17:42:39 +0200
++
++openjdk-7 (7u7-2.3.2a-1) experimental; urgency=low
++
++ * Upload to experimental.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 15 Sep 2012 22:20:06 +0200
++
++openjdk-7 (7u7-2.3.2a-0ubuntu1) quantal; urgency=low
++
++ * Repackage the source to drop the cacao tarball (and packaging files).
++ * Depend again on system provided tzdata-java and restore the zi
++ symlink on upgrade. LP: #1050404.
++ * libgnome2-0, libgnomevfs2-0, libgconf2-4 are not prepared for multiarch.
++ Don't depend on these so that openjdk-7 can be installed as a multiarch
++ package.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 15 Sep 2012 17:01:12 +0200
++
++openjdk-7 (7u7-2.3.2-1ubuntu2) quantal; urgency=low
++
++ * Make the avian VM a known runtime.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 05 Sep 2012 11:58:35 +0200
++
++openjdk-7 (7u7-2.3.2-1ubuntu1) quantal; urgency=low
++
++ * Fix 32bit hotspot build, don't set maximal heap space lower than
++ minimal heap space for the docs build.
++ * d/p/sane-library-paths.patch, d/p/ant-diagnostics.diff,
++ d/p/fix-race-cond-print.diff, d/p/gcc-hotspot-opt-O[02].diff,
++ d/p/gcc-mtune-generic.diff, d/p/openjdk-6986968.diff: Remove, not used.
++ * Remove unused shark/llvm-3.0 patches.
++ * d/p/zero-only-use-floating-point-if-floating-poi.patch: Remove, applied
++ upstream.
++ * Don't explicitly build with -march=i586 on i386 architectures.
++ * Re-apply zero-missing-headers.diff.
++ * Disable cacao builds, needs update for 7u7.
++ * For Ubuntu quantal, set priorities for alternatives higher than for
++ OpenJDK 6.
++ * Call update-alternatives when the existing priority for the alternative
++ is lower than the current one.
++ * Configure with --disable-downloading.
++ * Pass -avoid-version to libtool to create a JamVM libjvm.so without SONAME
++ version numbers to match the Hotspot Server/Client libjvm.so. LP: #850433.
++ * Revert the following change: Move libgnome2-0, libgnomevfs2-0, libgconf2-4
++ from Depends of JRE package to Recommends (#661465).
++ The proper fix is to create a -jdk-headless package, or not depending on
++ these gnome packages at all (e.g. using XDG libraries).
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 04 Sep 2012 12:08:31 +0200
++
++openjdk-7 (7u7-2.3.2-1) experimental; urgency=low
++
++ * New upstream IcedTea7 2.3.2 release.
++ * Security fixes:
++ - CVE-2012-4681: Reintroduce PackageAccessible checks removed in 6788531.
++ - S7079902, CVE-2012-1711: Refine CORBA data models.
++ - S7143606, CVE-2012-1717: File.createTempFile should be improved
++ for temporary files created by the platform.
++ - S7143614, CVE-2012-1716: SynthLookAndFeel stability improvement.
++ - S7143617, CVE-2012-1713: Improve fontmanager layout lookup operations.
++ - S7143851, CVE-2012-1719: Improve IIOP stub and tie generation in RMIC.
++ - S7143872, CVE-2012-1718: Improve certificate extension processing.
++ - S7152811, CVE-2012-1723: Issues in client compiler.
++ - S7157609, CVE-2012-1724: Issues with loop.
++ - S7160757, CVE-2012-1725: Problem with hotspot/runtime_classfile.
++ - S7165628, CVE-2012-1726: Issues with java.lang.invoke.MethodHandles.Lookup.
++ * Bump version to 7u7 (OpenJDK), 2.3.2 (IcedTea). Closes: #685276.
++ * d/p/icedtea7-forest-jdk_7104625-XEvent_wrap_logging_calls_with_if.patch,
++ d/p/hotspot-sparc.diff: Remove, integrated upstream.
++ * d/p/{deb-multiarch,fix_extra_flags,hotspot-no-werror}.diff:
++ Add variants for hotspot and zero builds.
++ * d/p/default-jvm-cfg.diff, d/p/icedtea-4953367.patch,
++ d/p/icedtea-patch.diff, d/p/icedtea-pretend-memory.diff,
++ d/p/libpcsclite-dlopen.diff, d/p/nonreparenting-wm.diff:
++ Update for 2.3.2.
++ * Remove build support for Ubuntu releases earlier than hardy.
++ * d/update-shasum.sh: Only update the shasums of the -dfsg tarballs.
++ * Don't apply shark patches (not built anyway).
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 01 Sep 2012 11:46:50 +0200
++
++openjdk-7 (7u3-2.1.7-1) unstable; urgency=high
++
++ * IcedTea7 2.1.7 release:
++ * Security fixes:
++ - S8007014, CVE-2013-0809: Improve image handling.
++ - S8007675, CVE-2013-1493: Improve color conversion.
++ * Backports:
++ - S8002344: Krb5LoginModule config class does not return proper KDC list
++ from DNS.
++ - S8004344: Fix a crash in ToolkitErrorHandler() in XlibWrapper.c.
++ - S8006179: JSR292 MethodHandles lookup with interface using findVirtual().
++ - S8006882: Proxy generated classes in sun.proxy package breaks JMockit.
++ * Bug fixes:
++ - PR1303: Correct #ifdef to #if
++ - Stop libraries being stripped in the OpenJDK build.
++ - PR1340: Simplify the rhino class rewriter to avoid use of concurrency.
++ - Revert 7017193 and add the missing free call, until a better fix is ready.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 30 Mar 2013 11:31:12 +0100
++
++openjdk-7 (7u3-2.1.6-1) unstable; urgency=high
++
++ * IcedTea7 2.1.5 release:
++ * Security fixes:
++ - S6563318, CVE-2013-0424: RMI data sanitization.
++ - S6664509, CVE-2013-0425: Add logging context.
++ - S6664528, CVE-2013-0426: Find log level matching its name or value
++ given at construction time.
++ - S6776941: CVE-2013-0427: Improve thread pool shutdown.
++ - S7141694, CVE-2013-0429: Improving CORBA internals.
++ - S7173145: Improve in-memory representation of splashscreens.
++ - S7186945: Unpack200 improvement.
++ - S7186946: Refine unpacker resource usage.
++ - S7186948: Improve Swing data validation.
++ - S7186952, CVE-2013-0432: Improve clipboard access.
++ - S7186954: Improve connection performance.
++ - S7186957: Improve Pack200 data validation.
++ - S7192392, CVE-2013-0443: Better validation of client keys.
++ - S7192393, CVE-2013-0440: Better Checking of order of TLS Messages.
++ - S7192977, CVE-2013-0442: Issue in toolkit thread.
++ - S7197546, CVE-2013-0428: (proxy) Reflect about creating reflective
++ proxies.
++ - S7200491: Tighten up JTable layout code.
++ - S7200493, CVE-2013-0444: Improve cache handling.
++ - S7200499: Better data validation for options.
++ - S7200500: Launcher better input validation.
++ - S7201064: Better dialogue checking.
++ - S7201066, CVE-2013-0441: Change modifiers on unused fields.
++ - S7201068, CVE-2013-0435: Better handling of UI elements.
++ - S7201070: Serialization to conform to protocol.
++ - S7201071, CVE-2013-0433: InetSocketAddress serialization issue.
++ - S8000210: Improve JarFile code quality.
++ - S8000537, CVE-2013-0450: Contextualize RequiredModelMBean class.
++ - S8000539, CVE-2013-0431: Introspect JMX data handling.
++ - S8000540, CVE-2013-1475: Improve IIOP type reuse management.
++ - S8000631, CVE-2013-1476: Restrict access to class constructor.
++ - S8001235, CVE-2013-0434: Improve JAXP HTTP handling.
++ - S8001242: Improve RMI HTTP conformance.
++ - S8001307: Modify ACC_SUPER behavior.
++ - S8001972, CVE-2013-1478: Improve image processing.
++ - S8002325, CVE-2013-1480: Improve management of images.
++ * Backports:
++ - S7054590: (JSR-292) MethodHandleProxies.asInterfaceInstance()
++ accepts private/protected nested interfaces.
++ - S7175616: Port fix for TimeZone from JDK 8 to JDK 7.
++ - S8002068: Build broken: corba code changes unable to use new
++ JDK 7 classes.
++ - S8004341: Two JCK tests fails with 7u11 b06.
++ - S8005615: Java Logger fails to load tomcat logger implementation (JULI).
++ * IcedTea7 2.1.6 release:
++ * Security fixes:
++ - S8004937, CVE-2013-1484: Improve proxy construction.
++ - S8006439, CVE-2013-1485: Improve MethodHandles coverage.
++ - S8006446, CVE-2013-1486: Restrict MBeanServer access.
++ - S8006777, CVE-2013-0169: Improve TLS handling of invalid messages.
++ - S8007688: Blacklist known bad certificate.
++ * Backports:
++ - S7123519: problems with certification path.
++ - S8007393: Possible race condition after JDK-6664509.
++ - S8007611: logging behavior in applet changed.
++ * Fix font suggestion for indic fonts in wheezy.
++ * Fix fontconfig definitions for japanese and korean fonts, fixing
++ compilation of the fontconfig file.
++ * Add Built-Using: rhino attribute for the -lib package.
++ * Don't use concurrent features to rewrite the rhino jar file.
++ * Enable class data sharing for the hotspot server VM.
++ * Enable bootstrap builds for alpha.
++ * Explicitly disable building on mips/mipsel. Not supported by the
++ Debian OpenJDK maintainers, the Debian mips porters, or the Debian
++ Java team.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 21 Feb 2013 03:38:13 +0100
++
++openjdk-7 (7u3-2.1.4-1) unstable; urgency=low
++
++ * IcedTea7 2.1.4 release.
++ * Security fixes
++ - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries
++ - S8006017, CVE-2013-0422: Improve lookup resolutions
++ - S8006125: Update MethodHandles library interactions
++ * Loosen OpenGL dependency. Closes: #695028.
++ * Fix error parsing drop files parameter from pcmanfm (Alberto Fernández
++ Martínez). Closes: #695992.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 16 Jan 2013 11:46:20 +0100
++
++openjdk-7 (7u3-2.1.3-1) unstable; urgency=low
++
++ * IcedTea7 2.1.3 release.
++ * Security fixes
++ - S6631398, CVE-2012-3216: FilePermission improved path checking.
++ - S7093490: adjust package access in rmiregistry.
++ - S7143535, CVE-2012-5068: ScriptEngine corrected permissions.
++ - S7158796, CVE-2012-5070: Tighten properties checking in EnvHelp.
++ - S7158807: Revise stack management with volatile call sites.
++ - S7163198, CVE-2012-5076: Tightened package accessibility.
++ - S7167656, CVE-2012-5077: Multiple Seeders are being created.
++ - S7169884, CVE-2012-5073: LogManager checks do not work correctly for
++ sub-types.
++ - S7169887, CVE-2012-5074: Tightened package accessibility.
++ - S7169888, CVE-2012-5075: Narrowing resource definitions in JMX RMI
++ connector.
++ - S7172522, CVE-2012-5072: Improve DomainCombiner checking.
++ - S7186286, CVE-2012-5081: TLS implementation to better adhere to RFC.
++ - S7189103, CVE-2012-5069: Executors needs to maintain state.
++ - S7189490: More improvements to DomainCombiner checking.
++ - S7189567, CVE-2012-5085: java net obselete protocol.
++ - S7192975, CVE-2012-5071: Issue with JMX reflection.
++ - S7195194, CVE-2012-5084: Better data validation for Swing.
++ - S7195549, CVE-2012-5087: Better bean object persistence.
++ - S7195917, CVE-2012-5086: XMLDecoder parsing at close-time should be
++ improved.
++ - S7195919, CVE-2012-5979: (sl) ServiceLoader can throw CCE without
++ needing to create instance.
++ - S7196190, CVE-2012-5088: Improve method of handling MethodHandles.
++ - S7198296, CVE-2012-5089: Refactor classloader usage.
++ - S7158801: Improve VM CompileOnly option.
++ - S7158804: Improve config file parsing.
++ - S7198606, CVE-2012-4416: Improve VM optimization.
++ * Backports
++ - S7175845: "jar uf" changes file permissions unexpectedly.
++ - S7177216: native2ascii changes file permissions of input file.
++ - S7106773: 512 bits RSA key cannot work with SHA384 and SHA512.
++ - S7158800: Improve storage of symbol tables.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 17 Oct 2012 16:03:47 +0200
++
++openjdk-7 (7u3-2.1.2-2ubuntu1) precise-security; urgency=low
++
++ * Make the avian VM a known runtime.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 08 Sep 2012 16:01:31 +0200
++
++openjdk-7 (7u3-2.1.2-2) unstable; urgency=high
++
++ * Pass -avoid-version to libtool to create a JamVM libjvm.so without SONAME
++ version numbers to match the Hotspot Server/Client libjvm.so. LP: #850433.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 04 Sep 2012 17:55:43 +0200
++
++openjdk-7 (7u3-2.1.2-1) unstable; urgency=high
++
++ * IcedTea7 2.1.2 release.
++ * Security fixes
++ - CVE-2012-4681, S7162473: Reintroduce PackageAccessible checks removed
++ in 6788531.
++ - S7162476, CVE-2012-1682: XMLDecoder security issue via ClassFinder.
++ - S7194567, CVE-2012-3136: Improve long term persistence of java.beans
++ objects.
++ - S7163201, CVE-2012-0547: Simplify toolkit internals references.
++ * d/p/hotspot-sparc.diff: Remove, integrated upstream.
++ * Stop running the mauve tests.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 03 Sep 2012 23:17:11 +0200
++
++openjdk-7 (7~u3-2.1.1-3) unstable; urgency=low
++
++ * d/rules: Ensure we don't remove -02 (default) when -03 is disabled
++ (fix jamvm FTBFS on armhf without -02).
++ * d/patches/gcc-jdk-opt-O0.diff, d/patches/gcc-jdk-opt-O2.diff,
++ d/patches/gcc-no-hardening.diff, d/patches/gcc-opt-O2.diff: removed.
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Wed, 25 Jul 2012 21:18:15 +0200
++
++openjdk-7 (7~u3-2.1.1-2) unstable; urgency=low
++
++ * d/rules: On Debian Wheezy/Sid bump Build-Depends on libnss3-dev
++ (>= 2:3.13.4) and Depends on libnss3 (>= 2:3.13.4) (ie. with epoch).
++ (Closes: #679465).
++ * d/control: Suggests icedtea-7-plugin instead of icedtea6-plugin
++ (Closes: #680284).
++ * d/patches/7130140-MouseEvent-systemout.diff: Remove "MEvent. CASE!" from
++ console output. (Closes: #679036).
++ * Disable -O3 compile: cause wrong Math.* computations.
++ (Closes: #679292 and Closes: #678228). LP: #1044857.
++ * debian/patches/FreetypeFontScaler_getFontMetricsNative.diff:
++ Fix "OpenJDK returns the text height greater than font size".
++ (Closes: #657854)
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Sat, 30 Jun 2012 18:17:51 +0200
++
++openjdk-7 (7~u3-2.1.1-1) unstable; urgency=medium
++
++ * New upstream release with security fixes (Closes: #677486):
++ - S7079902, CVE-2012-1711: Refine CORBA data models
++ - S7110720: Issue with vm config file loadingIssue with
++ vm config file loading
++ - S7143606, CVE-2012-1717: File.createTempFile should be improved
++ for temporary files created by the platform.
++ - S7143614, CVE-2012-1716: SynthLookAndFeel stability improvement
++ - S7143617, CVE-2012-1713: Improve fontmanager layout lookup operations
++ - S7143851, CVE-2012-1719: Improve IIOP stub and tie generation in RMIC
++ - S7143872, CVE-2012-1718: Improve certificate extension processing
++ - S7145239: Finetune package definition restriction
++ - S7152811, CVE-2012-1723: Issues in client compiler
++ - S7157609, CVE-2012-1724: Issues with loop
++ - S7160677: missing else in fix for 7152811
++ - S7160757, CVE-2012-1725: Problem with hotspot/runtime_classfile
++ - S7165628, CVE-2012-1726: Issues with
++ java.lang.invoke.MethodHandles.Lookup
++ * Patches merged upstream:
++ - debian/patches/arm-thumb-fix.diff
++ - debian/patches/gcc-4.7.diff
++
++ [ James Page ]
++ * Cherry picked patch from openjdk-6 to fix handling of
++ ICC profiles (LP: #888123, #888129) (Closes: #676351).
++
++ [ Damien Raude-Morvan ]
++ * Move libgnome2-0, libgnomevfs2-0, libgconf2-4 from Depends of JRE package
++ to Recommends (Closes: #661465).
++ * New jni_md_h_JNIEXPORT_visibility.patch to allow JNIEXPORT definition
++ to work with -fvisibility=hidden. (Closes: #670896).
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Mon, 11 Jun 2012 21:01:10 +0200
++
++openjdk-7 (7~u3-2.1.1~pre1-2) unstable; urgency=low
++
++ * Don't mark the -demo package as Multi-Arch same. Closes: #670038.
++ * Build using gcc-4.4 on mips, mipsel.
++ * Build again with older gcj version on s390 (4.6).
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 03 May 2012 10:44:20 +0200
++
++openjdk-7 (7~u3-2.1.1~pre1-1ubuntu3) precise-proposed; urgency=low
++
++ * Default to the ARM assembler interpreter instead to JamVM on
++ ARM. LP: #993380.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 02 May 2012 17:58:20 +0200
++
++openjdk-7 (7~u3-2.1.1~pre1-1ubuntu2) precise; urgency=low
++
++ * Use the /usr/bin path for the policytool desktop file. LP: #980205.
++ Closes: #670037.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 12 Apr 2012 23:29:06 +0200
++
++openjdk-7 (7~u3-2.1.1~pre1-1ubuntu1) precise; urgency=low
++
++ * Regenerate the control file.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 11 Apr 2012 07:21:41 +0200
++
++openjdk-7 (7~u3-2.1.1~pre1-1) unstable; urgency=low
++
++ * Update from the IcedTea7-2.1 release branch (20110410).
++ * Install desktop files again, using the common /usr/bin/java
++ interpreter name.
++ * Build-depend on libpng-dev for newer releases. Closes: #662452.
++ * Let dlopen handle finding the libpcsclite library. LP: #898689.
++ * Build-depend on fonts-ipafont-mincho, fixing a build failure in the
++ fontconfig compiler (find out why it breaks ...).
++ * Build using gcc-4.7/gcj-4.7 for sid/wheezy, fix build failure.
++ * Remove `-icedtea' suffix from the release identification.
++ * Fix arm thumb build, update taken from IcedTea6.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 10 Apr 2012 14:11:09 +0200
++
++openjdk-7 (7~u3-2.1-4) unstable; urgency=low
++
++ [ Matthias Klose ]
++ * Don't install the binary fontconfig file. LP: #964303.
++
++ [ Damien Raude-Morvan ]
++ * Remove libxp-dev check in configure.ac, it's not needed anymore
++ (Closes: #657260) and so drop build dependency on libxp-dev.
++ * Fix FTBFS with glib 2.32 by adding explicit dependency gthread-2.0.pc
++ (Closes: #665666).
++ * Use libpng-dev instead of libpng12-dev for wheezy/sid (Closes: #662453).
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Mon, 09 Apr 2012 00:21:20 +0200
++
++openjdk-7 (7~u3-2.1-3) unstable; urgency=low
++
++ * d/rules,Makefile.am: Improve handling of dpkg-buildflags: don't overwrite
++ CFLAGS of hotspot but use EXTRA_* flags into icedtea and openjdk Makefile.
++ (Closes: #661695).
++ * d/rules: Build everything with -03 opt level (jamvm, cacao and jdk)
++ * d/patches/kfreebsd-support-*.diff: Refresh kfreebsd patches and
++ fix FTBFS on k-i386 (ie. at least on a sid VM).
++ * Backport S7104625 as d/patches/icedtea7-forest-jdk_7104625*.patch
++ to check for logging to prevent wasted CPU (Closes: #651423).
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Tue, 06 Mar 2012 01:09:09 +0100
++
++openjdk-7 (7~u3-2.1-2) unstable; urgency=low
++
++ [ Matthias Klose ]
++ * Use NanumMyeongjo as the preferred korean font. LP: #792471.
++ * Fix crash in java.net.NetworkInterface.getNetworkInterfaces() when
++ ifr_ifindex exceeds 255. LP: #925218. S7078386.
++ * Use IPAfont as the preferred japanesse font. Closes: #646054.
++ * Build using gcj on alpha and armel. Closes: #655750.
++
++ [ Damien Raude-Morvan ]
++ * d/patches/sparc-stubgenerator.diff: Fix FTBFS on sparc on
++ stubGenerator_sparc.cpp by using explicit class typedef
++ (Closes: #660871).
++ * d/patches/fix_extra_flags.diff: Improve support for hardened build,
++ also send flags to jdk build and send -Wl,-z,relro during hotspot link.
++ * Bump Standards-Version to 3.9.3: no changes needed.
++ * d/control: Don't use nonexistent dlopenjl:Recommends substvar,
++ replaced by dlopenhl:Recommends.
++ * d/*.{prerm,postrm}: Use set -e inside script instead of sh -e shebang.
++ * Cleanup lintian-overrides.
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Wed, 29 Feb 2012 00:52:49 +0100
++
++openjdk-7 (7~u3-2.1-1ubuntu2) precise; urgency=low
++
++ * Make sure that the nss.cfg doesn't mention any library path.
++ LP: #939361, #939419.
++ * Disable the accessibility wrapper, doesn't work yet. LP: #935296.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 24 Feb 2012 15:10:12 +0100
++
++openjdk-7 (7~u3-2.1-1ubuntu1) precise; urgency=low
++
++ [ Damien Raude-Morvan ]
++ * d/patches/jexec.diff: Dropped, uneeded and not compatible with multi-arch.
++ * d/rules: Use dpkg-buildflags to enable hardened build.
++ (Closes: #660021).
++
++ [ Matthias Klose ]
++ * Merge r522 from openjdk6:
++ - Make upgrades from non-multiarch to multiarch builds more silent.
++ - Fix order of grant decls in java.policy.
++ - Make doc files multi-arch installable.
++ - JB-archive.applications.in: Use /usr/bin/java by default. Maybe
++ should be moved to the default-jdk package.
++ * Explicitly look for the gthread-2.0 pkgconfig module.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 22 Feb 2012 14:07:16 +0100
++
++openjdk-7 (7~u3-2.1-1) unstable; urgency=low
++
++ * Update icedtea7 2.1 (OpenJDK7 ~u3 release):
++ - Check for logging to prevent wasted CPU (Closes: #651423).
++ * Fix following security issues:
++ - S7082299, CVE-2011-3571: Fix in AtomicReferenceArray
++ - S7088367, CVE-2011-3563: Fix issues in java sound
++ - S7110683, CVE-2012-0502: Issues with some KeyboardFocusManager method
++ - S7110687, CVE-2012-0503: Issues with TimeZone class
++ - S7110700, CVE-2012-0505: Enhance exception throwing mechanism in
++ ObjectStreamClass
++ - S7110704, CVE-2012-0506: Issues with some method in corba
++ - S7112642, CVE-2012-0497: Incorrect checking for graphics rendering object
++ - S7118283, CVE-2012-0501: Better input parameter checking in zip file
++ processing
++ - S7126960, CVE-2011-5035: Add property to limit number of request headers
++ to the HTTP Server
++
++ [ Matthias Klose ]
++ * openjdk-7-jre-lib: Mark as Multi-Arch: foreign.
++
++ [ Damien Raude-Morvan ]
++ * Merge r501-521 from openjdk6:
++ - Fix plugin name in jinfo file.
++ - Fix build flags for cppInterpreter_arm.o.
++ - Use java-atk-wrapper instead of java-access-bridge for accessibility.
++ - Make the java.policy file multi-arch installable.
++ - Don't install desktop and menu files for multiarch builds.
++ Needs a better solution.
++ - Don't install an alternative for the deprecated apt tool.
++ - Make the upgrade from a non-multiarch installation location more
++ robust; don't depend on version numbers, but check the path of the
++ alternatives.
++ - Disable test for armel and powerpc (broken on buildd)
++ * d/rules: Make symbolic links to src.zip on /usr/lib/jvm/java-7-openjdk-amd64
++ like openjdk-6-jdk (Closes: #649618).
++ * d/rules: Pass -n to gzip when compressing manpages to be Multi-Arch: same safe.
++ * d/rules: Add build-arch/build-indep target.
++ * d/rules: Re-enable Cacao VM!
++ * d/{rules,control}: Only rhino 1.7R3 is supported by openjdk7, update B-D.
++ * d/patches/hotspot-s390.diff: Update for latest Hotspot.
++ * d/patches/icedtea-patch.diff: Move nssLibraryDirectory handling to d/rules.
++ * d/rules: Remove --with-*-drop-zip options, as code drops are embedded.
++ * d/patches/hsx23-zero.patch, patches/shark-compiler-fixes.patch:
++ Fix FTBFS for Zero under Hotspot >= v22.
++ * d/patches/kfreebsd-*: Refreshed.
++ * d/control: Make openjdk-7-source:all package binNMU-able by using
++ Depends ">=" on openjdk-7-jre (ie. src.zip won't change).
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Wed, 15 Feb 2012 20:55:52 +0100
++
++openjdk-7 (7~b147-2.0-1) unstable; urgency=low
++
++ * New upstream IcedTea7 release.
++ - S7000600, CVE-2011-3547: InputStream skip() information leak.
++ - S7019773, CVE-2011-3548: mutable static AWTKeyStroke.ctor.
++ - S7023640, CVE-2011-3551: Java2D TransformHelper integer overflow.
++ - S7032417, CVE-2011-3552: excessive default UDP socket limit under
++ SecurityManager.
++ - S7046794, CVE-2011-3553: JAX-WS stack-traces information leak.
++ - S7046823, CVE-2011-3544: missing SecurityManager checks in scripting
++ engine.
++ - S7055902, CVE-2011-3521: IIOP deserialization code execution.
++ - S7057857, CVE-2011-3554: insufficient pack200 JAR files uncompress error
++ checks.
++ - S7064341, CVE-2011-3389: HTTPS: block-wise chosen-plaintext attack
++ against SSL/TLS (BEAST).
++ - S7070134, CVE-2011-3558: HotSpot crashes with sigsegv from PorterStemmer.
++ - S7077466, CVE-2011-3556: RMI DGC server remote code execution.
++ - S7083012, CVE-2011-3557: RMI registry privileged code execution.
++ - S7096936, CVE-2011-3560: missing checkSetFactory calls in
++ HttpsURLConnection.
++
++ [ Matthias Klose ]
++ * Merge debian packaging r501 from openjdk-6:
++ - Tighten inter-package dependencies for Debian builds. Closes: #641240.
++ * Build-depend on wdiff.
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Sat, 01 Oct 2011 10:53:15 +0200
++
++openjdk-7 (7~b147-2.0~pre6-2) unstable; urgency=low
++
++ * d/rules: Fix java.policy to include jre/lib/ext/* files (instead of
++ non-existant ext/*). It'll restore privilegied access from sunpkcs11.jar
++ to sun.* code.
++ * d/patches/s390_hotspot_fix.diff: Update to fix FTBFS on s390.
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Sat, 01 Oct 2011 10:53:15 +0200
++
++openjdk-7 (7~b147-2.0~pre6-1) unstable; urgency=low
++
++ * Update to IcedTea7 (20110928).
++
++ [ Matthias Klose ]
++ * Merge debian packaging r496 from openjdk-6:
++ - Fix dangling java-1.7.0-openjdk symlink for non-multiarch builds.
++
++ [ Damien Raude-Morvan ]
++ * d/rules: --disable-compile-against-syscalls for kFreeBSD (since there is
++ no epoll support).
++ * Update patches:
++ - d/patches/sun-awt-buildsystem.diff: Drop, merged upstream.
++ - d/patches/icedtea-override-redirect-compiz.patch: Refresh.
++ - d/patches/s390_hotspot_fix.diff: Extracted (instead of direct patch).
++ * Add Build-Depends on libattr1-dev.
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Wed, 28 Sep 2011 17:19:33 +0200
++
++openjdk-7 (7~b147-2.0~pre5-1) unstable; urgency=low
++
++ * Update to IcedTea7 (20110914).
++ - d/patches/jdk-no-mapfile.diff: Drop, merged in icedtea7-forest
++ (for real this time).
++ - d/patches/sun-awt-buildsystem.diff: Fix icedtea7-forest awt build.
++ * d/patches/kfreebsd-support-jdk.diff: Refresh.
++ * d/patches/icedtea-patch.diff: Remove usage of nssLibraryDirectory because
++ while it works for nss3, it fails for softokn3 (since the latter is
++ in nss/ subdirectory). Without this parameter, openjdk-7 will rely on
++ default ld.so behavior. (Closes: #637337, #638008)
++ In openjdk-6, nssLibraryDirectory was not used to load softokn3 (Secmod).
++ * d/control: openjdk-7-jre Provides java7-runtime, openjdk-7-jre-headless
++ Provides java7-runtime-headless and openjdk-7-jdk Provides java7-jdk.
++ (Closes: #641668).
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Mon, 19 Sep 2011 16:33:15 +0200
++
++openjdk-7 (7~b147-2.0~pre4-1) unstable; urgency=low
++
++ * Update to IcedTea7 (20110906):
++ - JamVM: support for armhf and other various fixes.
++ * Upload to unstable.
++ * Regenerate control file for debian unstable.
++ * Makefile.am: Force JAVA_HOME for ant call to --with-jdk-home value (without
++ this, it defaults to existing JAVA_HOME env or /usr/bin/java link)
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Mon, 05 Sep 2011 23:50:43 +0200
++
++openjdk-7 (7~b147-2.0~pre3-3ubuntu2) oneiric; urgency=low
++
++ * Merge debian packaging r491 from openjdk-6:
++ - Move the -lib files into a different location so that the java-7-openjdk
++ name can be used as a symlink.
++ - Symlink the jre/cmm directory, instead of the files inside. Closes: #639883.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 01 Sep 2011 21:08:45 +0200
++
++openjdk-7 (7~b147-2.0~pre3-3ubuntu1) oneiric; urgency=low
++
++ * Regenerate the control file.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 28 Aug 2011 23:42:18 +0200
++
++openjdk-7 (7~b147-2.0~pre3-3) experimental; urgency=low
++
++ * Merge debian packaging r485:489 from openjdk-6:
++ - Build using GCC-4.4 on sparc and sparc64.
++ - Enable testsuite runs in s390x.
++ * Merge debian packaging r490 from openjdk-6:
++ - Set plugin name for the jinfo file. Closes: #638548,
++ - Disable the mauve testsuite on i386.
++ - Make the installation multiarch aware.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 28 Aug 2011 20:42:54 +0200
++
++openjdk-7 (7~b147-2.0~pre3-2) experimental; urgency=low
++
++ * d/patches/jdk-no-mapfile.diff: Re-add was not merged into
++ current (e46d527097f1) revision but latter.
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Mon, 22 Aug 2011 00:11:33 +0200
++
++openjdk-7 (7~b147-2.0~pre3-1) experimental; urgency=low
++
++ * Update to IcedTea7 (20110821):
++ - JamVM updates.
++ - S7070134,S7044738,S7068051,S7073913: Fix random segfaults
++ and related invalid results from loop unroll optimization.
++ - d/patches/jdk-no-mapfile.diff: Drop, merged in icedtea7-forest.
++
++ [ Matthias Klose ]
++ * Build using GCC-4.4 on mips/mipsel. Closes: #628620.
++ * Merge debian packaging r482:485 from openjdk-6:
++ - Call dbus-launch --exit-with-session in testsuite. Closes: #612394.
++ - Build for s390x using Zero.
++
++ [ Damien Raude-Morvan ]
++ * d/patches/kfreebsd-support-hotspot.diff: Add workaround
++ to handle #637378.
++ * d/generate-dfsg-zip.sh: Update to also handle langtools.tar.gz.
++ Closes: #623693.
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Sun, 21 Aug 2011 20:08:50 +0200
++
++openjdk-7 (7~b147-2.0~pre2-3) experimental; urgency=low
++
++ * d/patches/kfreebsd-support-hotspot.diff: Fix access to CPU registry under
++ kfreebsd-amd64.
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Sun, 07 Aug 2011 12:22:47 +0200
++
++openjdk-7 (7~b147-2.0~pre2-2) experimental; urgency=low
++
++ * d/patches/kfreebsd-support-jamvm.diff: Add support for kfreebsd-amd64.
++ * d/patches/kfreebsd-support-hotspot.diff: Small fixes for Hotspot on
++ kfreebsd-i386.
++ * Split d/patches/hotspot-s390.diff and zero-missing-headers.diff.
++ * Re-add missing changes from last upload:
++ - patches/use-idx_t.patch: Edit upstream patch to avoid FTBFS on s390.
++ - Makefile.{am,im}: Force bootclasspath (useful when building from
++ openjdk-6).
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Sat, 06 Aug 2011 23:50:58 +0200
++
++openjdk-7 (7~b147-2.0~pre2-1) experimental; urgency=low
++
++ * Update to icedtea7-forest snapshot (20110804):
++ - d/patches/pr753.diff: drop, merged in icedtea7-forest.
++ - d/patches/pr757.diff: drop, merged in icedtea7-forest.
++ - d/patches/zero-jsr292-fixes.diff: drop, merged in icedtea7-forest.
++ - d/patches/no-compiler-path.diff: drop, now handled correctly icedtea7's
++ configure and openjdk's Makefile (by CC and CXX environment variables).
++ - Updated JamVM to the 2011-08-01 revision.
++
++ [ Damien Raude-Morvan ]
++ * d/patches/zero-fpu-control-is-noop.diff: Remove ShouldNotCallThis from
++ os_linux_zero.cpp (fix crash under i386).
++ * d/rules: Enable support for GNU/kFreeBSD arch:
++ - d/patches/kfreebsd-support-*: Update with latest fixes.
++ - d/patches/kfreebsd-sync-issues.diff: hack to force some wait
++ until we fix sync issues.
++ - d/rules: Enable shark for GNU/kFreeBSD.
++ * d/rules: Use DEB_HOST_ARCH_CPU for jvmarch/archdir. Thanks to
++ Jérémie Koenig <jk@jk.fr.eu.org> for patch.
++ * d/patches/jexec.diff: Update for openjdk-7.
++ * d/JB-jdk.overrides.in: Fix override for new Lintian 2.5.0 path handling.
++ * d/icedtea-7-jre-jamvm.overrides: As for others libjvm.so, we use
++ --strip-debug instead of --strip-unneeded.
++ * d/source.lintian-overrides: Drop, not used anymore in openjdk-7.
++
++ [ Matthias Klose ]
++ * Merge debian packaging r472:482 from openjdk-6:
++ - openjdk-6-jre-headless: Depend on icedtea-6-jre-jamvm, if it's
++ the default VM.
++ - Use gcj-4.4 as the stage1 java VM on mips and mipsel.
++ - Make JamVM the default VM on Ubuntu oneiric/ARM.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 04 Aug 2011 11:38:01 +0200
++
++openjdk-7 (7~b147-2.0~pre1-1) experimental; urgency=low
++
++ * New b147 code drop (OpenJDK7 RC1).
++
++ [ Matthias Klose ]
++ * Fix build on sparc64.
++ * Recognize 32bit user space on sparc.
++ * Build shark using llvm-2.9.
++
++ [ Damien Raude-Morvan ]
++ * d/patches/zero-jsr292-fixes.diff: Fixes on Zero/Shark for JSR 292 support
++ from Chris Phillips <ChrisPhi@lgonqn.org>.
++ * d/generate-dfsg-zip.sh: Update for OpenJDK7 as a first step to get #623693
++ fixed.
++ * d/patches/kfreebsd-*: WiP patches for GNU/kFreeBSD support
++ (not yet enabled by default).
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 17 Jul 2011 16:08:51 +0200
++
++openjdk-7 (7~b143-2.0~pre1-2) experimental; urgency=low
++
++ * Upload to experimental.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 12 Jul 2011 14:30:01 +0200
++
++openjdk-7 (7~b143-2.0~pre1-1ubuntu1) oneiric; urgency=low
++
++ * Fix zero builds on non-ix86 architectures.
++ * Fix build on sparc.
++ * Build using jpeg8.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 12 Jul 2011 14:25:24 +0200
++
++openjdk-7 (7~b143-2.0~pre1-1) experimental; urgency=low
++
++ [ Damien Raude-Morvan ]
++ * New b143 code drop.
++ * Drop d/patches/7031385.diff: Merged upstream.
++ * Drop d/patches/jamvm-oj7.patch: Merged upstream.
++ * Manpages are now ja_JP.UTF-8 instead of ja_JP.eucJP
++
++ [ Matthias Klose ]
++ * Apply fix for IcedTea issue #753, #757.
++ * Update s390 hotspot build fixes.
++ * Re-enable zero on i386.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 10 Jul 2011 14:28:17 +0200
++
++openjdk-7 (7~b136-2.0~pre1-2) experimental; urgency=low
++
++ * Disable zero on i386.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 29 May 2011 12:37:03 +0200
++
++openjdk-7 (7~b136-2.0~pre1-1ubuntu1) oneiric; urgency=low
++
++ * Upload to oneiric.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 29 May 2011 07:59:01 +0200
++
++openjdk-7 (7~b136-2.0~pre1-1) experimental; urgency=low
++
++ [ Matthias Klose ]
++ * Fix non-bootstrap builds.
++ * Merge debian packaging r469:472 from openjdk-6.
++ * Run jtreg tests using JamVM too.
++ * Don't run the jtreg tests with the NSS security provider enabled.
++ * Update JamVM to 20110528.
++ * Re-enable the zero build, keep the shark builds disabled.
++
++ [ Damien Raude-Morvan ]
++ * Only apply jamvm-oj7.patch when jamvm build in enabled.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 28 May 2011 17:17:23 +0200
++
++openjdk-7 (7~b136-1.14+debian1-1) experimental; urgency=low
++
++ * New upstream release: Icedtea 1.14.
++ - debian/patches/jamvm-oj7.patch: support new instruction
++ (JVM_FindClassFromBootLoader) in JamVM.
++ - Makefile.am: Fix some missing depends between
++ patch and extract targets.
++ * debian/patches/nonreparenting-wm.diff: Update.
++ * Replace B-D on libxalan2-java by xsltproc for bootstrapping JMVTI.
++ * Don't use GCJ_SUFFIX=4.6 for sid/wheezy/oneiric as GCJ version
++ is not homogeneous between arch.
++ * Enable JamVM support:
++ - d/control: Add B-D on libtool.
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Thu, 26 May 2011 23:03:56 +0200
++
++openjdk-7 (7~b136-1.14~pre0-4) experimental; urgency=low
++
++ * Re-add build dependency on fastjar.
++ * Fix dependency on liblcms2-2.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 08 May 2011 10:21:21 +0200
++
++openjdk-7 (7~b136-1.14~pre0-3) experimental; urgency=low
++
++ * Fix liblcms dependency for -jre-headless package.
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Sat, 07 May 2011 17:20:15 +0200
++
++openjdk-7 (7~b136-1.14~pre0-2ubuntu2) oneiric; urgency=low
++
++ * Re-add build dependency on fastjar.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 08 May 2011 02:51:47 +0200
++
++openjdk-7 (7~b136-1.14~pre0-2) experimental; urgency=low
++
++ * Fix build failure on i386 with GCC 4.6.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 06 May 2011 17:10:00 +0200
++
++openjdk-7 (7~b136-1.14~pre0-1) experimental; urgency=low
++
++ [ Damien Raude-Morvan ]
++ * New b136 code drop:
++ - d/rules: Use jaxp-1_4_5-dev1.zip as jaxp-drop-zip.
++ - d/patches/icedtea-pretend-memory.diff: Refreshed.
++
++ [ Matthias Klose ]
++ * Fix -jre-lib dependency on -jre. Closes: #624846.
++ * Add lcms configury.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 05 May 2011 21:08:55 +0200
++
++openjdk-7 (7~b130-1.14~pre0-2) experimental; urgency=low
++
++ * Remove obsolete conflicts. Closes: #624090.
++ * Add copyright for the rewriter class. Addresses part of #623693.
++ * Lower priorities for the alternatives below these of OpenJDK 6,
++ as long as OpenJDK 7 is not yet released.
++ * Don't build HotSpot with -Werror on architectures other than amd64
++ and i386.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 27 Apr 2011 23:03:45 +0200
++
++openjdk-7 (7~b130-1.14~pre0-1) experimental; urgency=low
++
++ * New b130 code drop.
++ * Merge debian packaging r464:469 from openjdk-6.
++ * Do not bump the epoch, package was never uploaded to any official
++ repository.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 20 Apr 2011 21:46:32 +0200
++
++openjdk-7 (1:7~b129-1.14~pre0-1) experimental; urgency=low
++
++ * New b129 code drop.
++ * Bump epoch to 1 and use ~ to indicate that's not openjdk-7 final relaase.
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Mon, 14 Feb 2011 00:34:45 +0100
++
++openjdk-7 (7b128-1.14~pre0-1) UNRELEASED; urgency=low
++
++ * New b128 code drop.
++ * Exclude "release" file for dh_install.
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Mon, 07 Feb 2011 23:45:13 +0100
++
++openjdk-7 (7b126-1.14~pre0-1) UNRELEASED; urgency=low
++
++ * Merge debian packaging r446:464 from openjdk-6
++ but keep the following changes :
++ - Replace DISABLE_PRECOMPILED_HEADER=1 by USE_PRECOMPILED_HEADER=0
++ - Use "ant, ant-optionnal" for all distrel
++ - Drop "with_hotspot" variable (only one hotspot supported by IcedTea7)
++ - Drop --enable-xrender (not supported by IcedTea7)
++ * New b125 code drop:
++ - d/rules: Use new archives by --with-*-src-zip
++ * Refresh patches:
++ - d/patches/shebang.diff: Year updated
++ - d/patches/ld-symbolic-functions.diff and
++ d/patches/no-compiler-path.diff: Changed corba generic Makefiles.
++ - d/patches/default-jvm-cfg.diff and d/patches/set-exec-name.diff:
++ Upstream merged "solaris" and "linux" java.c and java_md.c
++ * Drop patches:
++ - d/patches/too-many-args-ftbfs.diff (merged upstream)
++ - d/patches/sparc.diff (merges upstream)
++ - d/patches/hotspot-include-fixes.diff (includeDB dropped upstream)
++
++ -- Damien Raude-Morvan <drazzib@debian.org> Mon, 24 Jan 2011 00:18:38 +0100
++
++openjdk-7 (7b106~pre1-0lucid2) lucid; urgency=low
++
++ * Build for lucid.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 09 Sep 2010 15:32:13 +0200
++
++openjdk-7 (7b106~pre1-0ubuntu2) maverick; urgency=low
++
++ * Build openjdk-7 snapshot (7b106)
++ * Symlink timezone data.
++ * Disable shark builds, currently broken in 7b106.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 07 Sep 2010 04:56:48 +0200
++
++openjdk-7 (7b89-1.13-0ubuntu1) maverick; urgency=low
++
++ * Update to the IcedTea 1.13 release.
++ * openjdk-7-jre: Recommend ttf-dejavu-extra. LP: #569396.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 30 Jul 2010 01:19:45 +0200
++
++openjdk-7 (7b89~pre1-0lucid3) lucid; urgency=low
++
++ * Include docs in the -doc package. LP: #600834.
++ * Update from the IcedTea6 trunk.
++ - Plugin and netx fixes.
++ - Don't link the plugin against the libxul libraries. Closes: #576361.
++ - More plugin cpu usage fixes. Closes: #584335, #587049.
++ - Plugin: fixes AppletContext.getApplets().
++ * Fix Vcs-Bzr location. Closes: #530883.
++ * Search for unversioned llvm-config tool.
++ * Don't set XFILESEARCHPATH and NLSPATH on startup. LP: #586641.
++ * Fix chinese font metrics and prefer using 'WenQuanYi Micro Hei' font.
++ LP: #472845.
++ * Strip libjvm.so with --strip-debug instead of --strip-unneeded.
++ LP: #574997.
++ * Fix inter-package dependencies.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 15 Jul 2010 18:12:17 +0200
++
++openjdk-7 (7b89~pre1-0lucid1) lucid; urgency=low
++
++ [ Damien Raude-Morvan ]
++ * Merge debian packaging r403:430 from openjdk-6.
++ * Add myself to Uploaders.
++ * Build openjdk-7 snapshot (7b89)
++ * Use ant+ant-optional (IcedTea7 support ant 1.8).
++ * Merge debian packaging r431:436 from openjdk-6.
++
++ [ Matthias Klose ]
++ * Merge debian packaging r430:445 from openjdk-6.
++ * Update debian patches to 7b89.
++ * Reenable the two stage build.
++ * Reenable building cacao.
++ * Reenable building zero.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 13 Jul 2010 10:32:11 +0200
++
++openjdk-7 (7b77-0ubuntu1~ppa1) lucid; urgency=low
++
++ * Build openjdk-7 snapshot (7b77).
++ * Merge debian packaging r391:403 from openjdk-6.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 21 Dec 2009 16:58:34 +0100
++
++openjdk-7 (7b72-0ubuntu1~ppa1) karmic; urgency=low
++
++ * Build openjdk-7 snapshot (7b72).
++ * Merge debian packaging r371:391 from openjdk-6.
++ * Disable the zero build for now.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 03 Oct 2009 16:35:27 +0200
++
++openjdk-7 (7b66-0ubuntu1~ppa1) karmic; urgency=low
++
++ * Build openjdk-7 snapshot (7b66).
++ * Merge debian packaging r362:371 from openjdk-6.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 06 Aug 2009 12:40:00 +0200
++
++openjdk-7 (7b59-0ubuntu1) karmic; urgency=low
++
++ * Reenable the build of zero.
++ * Reapply fontconfig patch.
++ * Apply icedtea-cacao-no-mmap-first-page patch.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 29 May 2009 10:19:26 +0200
++
++openjdk-7 (7b59-0ubuntu1~ppa1) karmic; urgency=low
++
++ * Build openjdk-7 snapshot (7b59).
++ * Merge debian packaging r205:362 from openjdk-6.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 27 May 2009 12:09:16 +0200
++
++openjdk-7 (7b40-0ubuntu2) jaunty; urgency=low
++
++ * Add build dependency on libxrender-dev.
++ * Don't use fastjar on ia64, working around a build failure.
++ * Add configury for shark builds.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 04 Dec 2008 16:26:15 +0100
++
++openjdk-7 (7b40-0ubuntu1) jaunty; urgency=low
++
++ * Build openjdk-7 snapshot (7b40).
++ * Update packaging for openjdk-7.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 02 Dec 2008 14:27:03 +0100
++
++openjdk-6 (6b22-1.10.1-0ubuntu1) natty; urgency=low
++
++ * IcedTea6 1.10.1 release.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 05 Apr 2011 12:20:36 +0200
++
++openjdk-6 (6b22-1.10.1~pre1-1) experimental; urgency=low
++
++ * Upload to experimental.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 26 Mar 2011 10:43:49 +0100
++
++openjdk-6 (6b22-1.10.1~pre1-0ubuntu1) natty; urgency=low
++
++ * Update from the IcedTea6-1.10 release branch (20110325).
++ * Add multiarch directories to the default library path. LP: #737603.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 25 Mar 2011 16:33:57 +0100
++
++openjdk-6 (6b22-1.10-3) experimental; urgency=low
++
++ * Fix JamVM build on mips/mipsel (Robert Lougher).
++ * Re-enable the JamVM build on mips/mipsel.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 06 Mar 2011 15:01:54 +0100
++
++openjdk-6 (6b22-1.10-2) experimental; urgency=low
++
++ * Mention that IcedTea is copyrigh GPLv2 + "CLASSPATH" EXCEPTION.
++ Closes: #611269.
++ * Don't run the jdk checks for the alternate builds (hotspot and
++ langtools checks are still run).
++ * Disable the JamVM build on mips/mipsel.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 05 Mar 2011 16:13:40 +0100
++
++openjdk-6 (6b22-1.10-1) experimental; urgency=low
++
++ * Upload to experimental.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 04 Mar 2011 16:12:50 +0100
++
++openjdk-6 (6b22-1.10-0ubuntu2) natty; urgency=low
++
++ * Disable the jdk tests with the Shark, JamVM and Cacao VMs.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 04 Mar 2011 15:32:50 +0100
++
++openjdk-6 (6b22-1.10-0ubuntu1) natty; urgency=low
++
++ * IcedTea6 1.10 release.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 03 Mar 2011 09:32:19 +0100
++
++openjdk-6 (6b21~pre3-0ubuntu1) natty; urgency=low
++
++ * Update from the IcedTea6 trunk (20110224).
++ * icedtea-6-jre-jamvm: Build JamVM as an alternative VM,
++ start with `java -jamvm'.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 24 Feb 2011 02:45:56 +0100
++
++openjdk-6 (6b21~pre2-0ubuntu1) natty; urgency=low
++
++ * Update from the IcedTea6 trunk (20110217).
++ * Update hotspot hs20 (not yet enabled).
++ * Add ppc64 packaging bits.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 18 Feb 2011 15:55:41 +0100
++
++openjdk-6 (6b21~pre1-1) experimental; urgency=low
++
++ * Upload to experimental.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 22 Jan 2011 15:34:21 +0100
++
++openjdk-6 (6b21~pre1-0ubuntu1) natty; urgency=low
++
++ * Update to 6b21.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 22 Jan 2011 14:28:28 +0100
++
++openjdk-6 (6b20-1.10~pre3-0ubuntu4) natty; urgency=low
++
++ * Fix shark build on powerpc.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 24 Dec 2010 11:06:32 +0100
++
++openjdk-6 (6b20-1.10~pre3-0ubuntu3) natty; urgency=low
++
++ * Update from the IcedTea6 trunk (20101223).
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 23 Dec 2010 14:27:17 +0100
++
++openjdk-6 (6b20-1.10~pre3-0ubuntu1) natty; urgency=low
++
++ * Update from the IcedTea6 trunk (20101126).
++ * Update hotspot hs19.
++ * Fix build failures on ia64, s390 and sparc64.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 26 Nov 2010 16:38:16 +0100
++
++openjdk-6 (6b20-1.10~pre2-0ubuntu7~ppa1) natty; urgency=low
++
++ * Reenable shark on amd64, but build using llvm-2.7.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 21 Oct 2010 23:59:30 +0200
++
++openjdk-6 (6b20-1.10~pre2-0ubuntu5) natty; urgency=low
++
++ * Don't try to set up an alternative for javaws
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 21 Oct 2010 17:38:48 +0200
++
++openjdk-6 (6b20-1.10~pre2-0ubuntu3) natty; urgency=low
++
++ * Stop building zero/shark on amd64. Fails the self tests.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 21 Oct 2010 13:49:56 +0200
++
++openjdk-6 (6b20-1.10~pre2-0ubuntu2) natty; urgency=low
++
++ * Don't include OpenJDK's javaws either.
++ * openjdk-6-jre: Recommend icedtea-netx.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 21 Oct 2010 08:34:07 +0200
++
++openjdk-6 (6b20-1.10~pre2-0ubuntu1) natty; urgency=low
++
++ * Update from the IcedTea6 trunk (20101020).
++ * Remove the plugin and javaws from the packaging, removed upstream.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 20 Oct 2010 17:45:09 +0200
++
++openjdk-6 (6b20-1.10~pre1-0ubuntu2) natty; urgency=low
++
++ * Build with hotspot 19.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 14 Oct 2010 11:28:38 +0200
++
++openjdk-6 (6b20-1.10~pre1-0ubuntu1) natty; urgency=low
++
++ * Snapshot, taken from the IcedTea6 trunk (20101013).
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 13 Oct 2010 08:36:44 +0200
++
++openjdk-6 (6b20-1.9.2-1) experimental; urgency=low
++
++ * Upload to experimental.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 24 Nov 2010 05:29:43 +0100
++
++openjdk-6 (6b20-1.9.2-0ubuntu1) maverick-security; urgency=low
++
++ * IcedTea6 1.9.2 release.
++ - CVE-2010-3860: Fix IcedTea System property information leak via
++ public static.
++ * Build using Hotspot hs19.
++ * Start metacity using dbus-launch, when running the testsuite. LP: #632594.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 21 Nov 2010 18:30:39 +0100
++
++openjdk-6 (6b20-1.9.1-1ubuntu3) maverick-security; urgency=low
++
++ * Move all japanese man pages belonging to the jre into the -jre package.
++ Closes: #600765.
++ * Add -jdk replaces for -jre and -jre-headless. Closes: #600809.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 20 Oct 2010 12:51:34 +0200
++
++openjdk-6 (6b20-1.9.1-1ubuntu1) maverick-security; urgency=low
++
++ * Fix upgrade to symlinked timezone data. Closes: #600359.
++ * Move all japanese man pages belonging to the jre into the -jre package.
++ Closes: #600765.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 18 Oct 2010 16:07:48 +0200
++
++openjdk-6 (6b20-1.9.1-1) experimental; urgency=low
++
++ * Upload to experimental.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 12 Oct 2010 15:07:35 +0200
++
++openjdk-6 (6b20-1.9.1-0ubuntu1) maverick-security; urgency=low
++
++ * IcedTea6 1.9.1 release.
++ - Security updates:
++ - S6914943, CVE-2009-3555: TLS: MITM attacks via session renegotiation.
++ - S6559775, CVE-2010-3568: OpenJDK Deserialization Race condition.
++ - S6891766, CVE-2010-3554: OpenJDK corba reflection vulnerabilities.
++ - S6925710, CVE-2010-3562: OpenJDK IndexColorModel double-free.
++ - S6938813, CVE-2010-3557: OpenJDK Swing mutable static.
++ - S6957564, CVE-2010-3548: OpenJDK DNS server IP address information
++ leak.
++ - S6958060, CVE-2010-3564: OpenJDK kerberos vulnerability.
++ - S6963023, CVE-2010-3565: OpenJDK JPEG writeImage remote code execution.
++ - S6963489, CVE-2010-3566: OpenJDK ICC Profile remote code execution.
++ - S6966692, CVE-2010-3569: OpenJDK Serialization inconsistencies.
++ - S6622002, CVE-2010-3553: UIDefault.ProxyLazyValue has unsafe
++ reflection usage.
++ - S6623943: javax.swing.TimerQueue's thread occasionally fails to start.
++ - S6925672, CVE-2010-3561: Privileged ServerSocket.accept allows
++ receiving connections from any host.
++ - S6952017, CVE-2010-3549: HttpURLConnection chunked encoding issue
++ (Http request splitting).
++ - S6952603, CVE-2010-3551: NetworkInterface reveals local network
++ address to untrusted code.
++ - S6961084, CVE-2010-3541: limit setting of some request headers in
++ HttpURLConnection.
++ - S6963285, CVE-2010-3567: Crash in ICU Opentype layout engine due to
++ mismatch in character counts.
++ - S6980004, CVE-2010-3573: limit HTTP request cookie headers in
++ HttpURLConnection.
++ - S6981426, CVE-2010-3574: limit use of TRACE method in
++ HttpURLConnection.
++ - Plugin fixes.
++ - Backports from newer IcedTea releases.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 12 Oct 2010 12:13:40 +0200
++
++openjdk-6 (6b20-1.9-1) experimental; urgency=low
++
++ * Upload to experimental.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 07 Sep 2010 21:19:21 +0200
++
++openjdk-6 (6b20-1.9-0ubuntu1) maverick; urgency=low
++
++ * IcedTea6 1.9 release.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 07 Sep 2010 18:13:20 +0200
++
++openjdk-6 (6b20~pre2-0ubuntu2) maverick; urgency=low
++
++ * Update from the IcedTea6 trunk.
++ * Really let the build fail on armel.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 30 Jul 2010 16:55:38 +0200
++
++openjdk-6 (6b20~pre2-0ubuntu1) maverick; urgency=high
++
++ * Update from the IcedTea6 trunk.
++ - (CVE-2010-2783): IcedTea 'Extended JNLP Services' arbitrary file access.
++ - (CVE-2010-2548): IcedTea incomplete property access check for unsigned
++ applications
++ * openjdk-6-jre: Recommend ttf-dejavu-extra. LP: #569396.
++ * Explicitely fail the build on armel. The ARM assembler interpreter is
++ disabled and would a 3-5x performance regression compared to the current
++ 6b18 armel binaries in the archive.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 29 Jul 2010 00:10:53 +0200
++
++openjdk-6 (6b20~pre1-2) experimental; urgency=low
++
++ * Upload to experimental.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 15 Jul 2010 13:55:02 +0200
++
++openjdk-6 (6b20~pre1-1ubuntu1) maverick; urgency=low
++
++ * Include docs in the -doc package. LP: #600834.
++ * Update from the IcedTea6 trunk.
++ - Plugin and netx fixes.
++ - Don't link the plugin against the libxul libraries. Closes: #576361.
++ - More plugin cpu usage fixes. Closes: #584335, #587049.
++ - Plugin: fixes AppletContext.getApplets().
++ * Fix Vcs-Bzr location. Closes: #530883.
++ * Search for unversioned llvm-config tool.
++ * Don't set XFILESEARCHPATH and NLSPATH on startup. LP: #586641.
++ * Fix chinese font metrics and prefer using 'WenQuanYi Micro Hei' font.
++ LP: #472845.
++ * Strip libjvm.so with --strip-debug instead of --strip-unneeded.
++ LP: #574997.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 15 Jul 2010 12:40:10 +0200
++
++openjdk-6 (6b20~pre1-1) experimental; urgency=low
++
++ * Upload to experimental.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 28 Jun 2010 00:50:58 +0200
++
++openjdk-6 (6b20~pre1-0ubuntu2) maverick; urgency=low
++
++ * Shark & CACAO build fixes.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 25 Jun 2010 02:27:10 +0200
++
++openjdk-6 (6b20~pre1-0ubuntu1) maverick; urgency=low
++
++ * Update to 6b20 code drop.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 14 Apr 2010 02:53:37 +0200
++
++openjdk-6 (6b18-1.8-4) unstable; urgency=low
++
++ * Update from the 1.8 branch.
++ - Plugin and netx fixes.
++ - Don't link the plugin against the libxul libraries. Closes: #576361.
++ - More plugin cpu usage fixes. Closes: #584335, #587049.
++ - Plugin: fixes AppletContext.getApplets().
++ - Fix race conditions in plugin initialization code that were causing
++ hangs when loading multiple applets in parallel.
++ * Fix Vcs-Bzr location. Closes: #530883.
++ * Search for unversioned llvm-config tool.
++ * Don't set XFILESEARCHPATH and NLSPATH on startup. LP: #586641.
++ * Fix chinese font metrics and prefer using 'WenQuanYi Micro Hei' font.
++ LP: #472845.
++ * Strip libjvm.so with --strip-debug instead of --strip-unneeded.
++ LP: #574997.
++ * Don't turn on the ARM assembler interpreter when building the shark
++ VM.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 15 Jul 2010 00:40:13 +0200
++
++openjdk-6 (6b18-1.8-3) unstable; urgency=low
++
++ * Update from the 1.8 branch.
++ - Plugin fixes. LP: #597714.
++ * Add powerpcspe build fixes (Sebastian Andrzej Siewior). Closes: #586359.
++ * Work around build failure on buildds configured with low ARG_MAX
++ (Giovanni Mascellani). Closes: #575254.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 27 Jun 2010 10:16:27 +0200
++
++openjdk-6 (6b18-1.8-2ubuntu3) maverick; urgency=low
++
++ * Update from the 1.8 branch.
++ - Plugin fixes. LP: #597714.
++ * Add powerpcspe build fixes (Sebastian Andrzej Siewior). Closes: #586359.
++ * Work around build failure on buildds configured with low ARG_MAX
++ (Giovanni Mascellani). Closes: #575254.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 27 Jun 2010 10:16:27 +0200
++
++openjdk-6 (6b18-1.8-2ubuntu2) maverick; urgency=low
++
++ * Search for unversioned llvm-config tool.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 02 May 2010 12:03:01 +0200
++
++openjdk-6 (6b18-1.8-2ubuntu1) maverick; urgency=low
++
++ * Upload to maverick.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 02 May 2010 11:23:16 +0200
++
++openjdk-6 (6b18-1.8-2) unstable; urgency=low
++
++ * Update from the 1.8 branch.
++ - Fix build on Hitachi SH. Closes: #575346.
++ - Shark and Zero fixes.
++ * Build shark using llvm-2.7.
++ * Don't use shark to run the test harness when testing the shark build.
++ * README.Debian: Add paragraph about debugging the IcedTea NPPlugin.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 01 May 2010 12:35:19 +0200
++
++openjdk-6 (6b18-1.8-1) unstable; urgency=low
++
++ * Upload to unstable.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 14 Apr 2010 02:53:37 +0200
++
++openjdk-6 (6b18-1.8-0ubuntu1) lucid; urgency=low
++
++ * Update IcedTea6 to the icedtea6-1.8 release.
++ * Fix builds on Ubuntu/dapper and Debian/lenny.
++ * On hppa, configure --without-rhino --disable-plugin.
++ * Fix Hitachi SH configury. Closes: #575346.
++ * Start a window manager when running the tests. Prefer metacity,
++ as more tests pass with it.
++ * Let XToolkit.isTraySupported() return true, if Compiz is running.
++ Works around sun#6438179. LP: #300948.
++ * Make <java_home>/jre/lib/security/nss.cfg a config file.
++ * Fail in the configuration of the packages, if /proc is not mounted.
++ java currently uses tricks to find its own shared libraries depending
++ on the path of the binary. Will be changed in OpenJDK7. Closes: #576453.
++ * Fix PR icedtea/469, testsuite failures with the NSS based security
++ provider. LP: #556549.
++ * Do not pass LD_LIBRARY_PATH from the plugin to the java process.
++ While libnss3.so gets loaded from /usr/lib, the dependent libraries
++ are loaded from MOZILLA_FIVE_HOME (See #561216 for the wrong firefox
++ config). LP: #561124.
++ Closes as well: LP: #551328, #554909, #560829, #549010, #553452.
++ * Always build shark with hs14.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 14 Apr 2010 01:53:33 +0200
++
++openjdk-6 (6b18~pre4-1ubuntu1) lucid; urgency=low
++
++ * Build-depend on xulrunner-1.9.2-dev instead of xulrunner-dev,
++ unexpectedly demoted to universe.
++ * icedtea6-plugin: Hardcode dependency on xulrunner-1.9.2. No way
++ to do better? See #552780.
++ * Fix builds on Ubuntu hardy.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 31 Mar 2010 22:21:49 +0200
++
++openjdk-6 (6b18~pre4-1) unstable; urgency=high
++
++ * Upload to unstable.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 31 Mar 2010 16:35:18 +0200
++
++openjdk-6 (6b18~pre4-0ubuntu2) lucid; urgency=low
++
++ * Fix typo in NPPlugin code. LP: #552287.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 31 Mar 2010 10:41:11 +0200
++
++openjdk-6 (6b18~pre4-0ubuntu1) lucid; urgency=low
++
++ [ Matthias Klose ]
++ * Update IcedTea6 form the 1.8 branch.
++ * SECURITY UPDATE: multiple upstream vulnerabilities. Upstream fixes:
++ - (CVE-2010-0837): JAR "unpack200" must verify input parameters (6902299).
++ - (CVE-2010-0845): No ClassCastException for HashAttributeSet constructors
++ if run with -Xcomp (6894807).
++ - (CVE-2010-0838): CMM readMabCurveData Buffer Overflow Vulnerability
++ (6899653).
++ - (CVE-2010-0082): Loader-constraint table allows arrays instead of
++ only the base-classes (6626217).
++ - (CVE-2010-0095): Subclasses of InetAddress may incorrectly interpret
++ network addresses (6893954) [ZDI-CAN-603].
++ - (CVE-2010-0085): File TOCTOU deserialization vulnerability (6736390).
++ - (CVE-2010-0091): Unsigned applet can retrieve the dragged information
++ before drop action occurs (6887703).
++ - (CVE-2010-0088): Inflater/Deflater clone issues (6745393).
++ - (CVE-2010-0084): Policy/PolicyFile leak dynamic ProtectionDomains
++ (6633872).
++ - (CVE-2010-0092): AtomicReferenceArray causes SIGSEGV -> SEGV_MAPERR
++ error (6888149).
++ - (CVE-2010-0094): Deserialization of RMIConnectionImpl objects should
++ enforce stricter checks (6893947) [ZDI-CAN-588].
++ - (CVE-2010-0093): System.arraycopy unable to reference elements
++ beyond Integer.MAX_VALUE bytes (6892265).
++ - (CVE-2010-0840): Applet Trusted Methods Chaining Privilege Escalation
++ Vulnerability (6904691).
++ - (CVE-2010-0848): AWT Library Invalid Index Vulnerability (6914823).
++ - (CVE-2010-0847): ImagingLib arbitrary code execution vulnerability
++ (6914866).
++ - (CVE-2009-3555): TLS: MITM attacks via session renegotiation.
++ - 6639665: ThreadGroup finalizer allows creation of false root
++ ThreadGroups.
++ - 6898622: ObjectIdentifer.equals is not capable of detecting incorrectly.
++ encoded CommonName OIDs.
++ - 6910590: Application can modify command array in ProcessBuilder.
++ - 6909597: JPEGImageReader stepX Integer Overflow Vulnerability.
++ - 6932480: Crash in CompilerThread/Parser. Unloaded array klass?
++ - 6898739: TLS renegotiation issue.
++
++ [ Torsten Werner ]
++ * Switch off IPV6_V6ONLY for IN6_IS_ADDR_UNSPECIFIED addresses, too.
++ (Closes: #575163)
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 31 Mar 2010 02:34:04 +0200
++
++openjdk-6 (6b18~pre3-1) unstable; urgency=low
++
++ [ Matthias Klose ]
++ * Update IcedTea build infrastructure (20100321).
++ * Update support for SH4 (Nobuhiro Iwamatsu).
++ * Handle renaming of the plugin name.
++
++ [ Torsten Werner ]
++ * Improve patch for IPv4 mapped IPv6 addresses even more.
++ (Closes: #573742)
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 21 Mar 2010 22:52:12 +0100
++
++openjdk-6 (6b18~pre2-1ubuntu2) lucid; urgency=low
++
++ * Fix build failure on ARM.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 12 Mar 2010 15:19:13 +0100
++
++openjdk-6 (6b18~pre2-1ubuntu1) lucid; urgency=low
++
++ * Upload to lucid.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 10 Mar 2010 23:34:57 +0100
++
++openjdk-6 (6b18~pre2-1) unstable; urgency=low
++
++ * Update IcedTea build infrastructure (20100310).
++ * Disable building the plugin the plugin on alpha (borked xulrunner
++ packaging using binary indep packages).
++ * Use a two stage build on alpha.
++ * Add note about the reparenting WM workaround. Closes: #573026.
++ * Prefer Sazanami instead of Kochi for Japanese fonts (Hideki Yamane).
++ Closes: #572511.
++ * openjdk-6-doc: Don't compress package-list files. Closes: #567899.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 10 Mar 2010 11:19:19 +0100
++
++openjdk-6 (6b18~pre1-4) unstable; urgency=low
++
++ * Improve patch for IPv4 mapped IPv6 addresses.
++
++ -- Torsten Werner <twerner@debian.org> Sun, 07 Mar 2010 01:14:36 +0100
++
++openjdk-6 (6b18~pre1-3) unstable; urgency=low
++
++ * Add a patch for improved handling of IPv4 mapped IPv6 addresses.
++ (Closes: #560056, #561930, #563699, #563946)
++
++ -- Torsten Werner <twerner@debian.org> Tue, 02 Mar 2010 23:46:57 +0100
++
++openjdk-6 (6b18~pre1-2) unstable; urgency=low
++
++ * Change Build-Depends: ant1.7-optional because of a bus error in gij.
++
++ -- Torsten Werner <twerner@debian.org> Mon, 01 Mar 2010 07:17:16 +0100
++
++openjdk-6 (6b18~pre1-1ubuntu1) lucid; urgency=low
++
++ * Ignore error code running ant -diagnostics.
++ * Build-depend on ant-optional.
++ * Disable the cacao build on armel, fails to build with the non
++ bootstrap build.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 20 Feb 2010 15:36:06 +0100
++
++openjdk-6 (6b18~pre1-1) unstable; urgency=low
++
++ * Upload to unstable.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 19 Feb 2010 21:52:32 +0100
++
++openjdk-6 (6b18~pre1-0ubuntu1) lucid; urgency=low
++
++ * New Openjdk6 b18 source code drop.
++ * Use mangled copy of rhino. Closes: #512970. LP: #255149.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 19 Feb 2010 18:17:23 +0100
++
++openjdk-6 (6b17-1.7-1ubuntu1) lucid; urgency=low
++
++ * ARM Thumb2 updates.
++ * Test build using Hotspt hs14 on ix86.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 31 Jan 2010 21:56:59 +0100
++
++openjdk-6 (6b18~pre1-1) unstable; urgency=low
++
++ * Upload to unstable.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 19 Feb 2010 21:52:32 +0100
++
++openjdk-6 (6b18~pre1-0ubuntu1) lucid; urgency=low
++
++ * New Openjdk6 b18 source code drop.
++ * Use mangled copy of rhino. Closes: #512970. LP: #255149.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 19 Feb 2010 18:17:23 +0100
++
++openjdk-6 (6b17-1.7-1ubuntu1) lucid; urgency=low
++
++ * ARM Thumb2 updates.
++ * Test build using Hotspt hs14 on ix86.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 31 Jan 2010 21:56:59 +0100
++
++openjdk-6 (6b17-1.7-1) unstable; urgency=low
++
++ * Upload to unstable.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 27 Jan 2010 23:44:47 +0100
++
++openjdk-6 (6b17-1.7-0ubuntu1) lucid; urgency=low
++
++ * IcedTea6 1.7 release.
++ * Don't try to load libjpeg7; still building with libjpeg62. Closes: #563999.
++ * Run the testsuite on sh4.
++ * Ubuntu only: Implement an execute bit checker for the Non-Exec Policy
++ - debian/JB-java.desktop.in: update mime handler to use new launcher.
++ * armel: Apply the thumb2 patches from the trunk, plus proposed patches
++ for the trunk.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 27 Jan 2010 22:48:24 +0100
++
++openjdk-6 (6b17-0ubuntu1) lucid; urgency=low
++
++ * Build from the IcedTea6-1.7 branch.
++ * Don't build the plugin on sparc64.
++ * Enable the NPPlugin.
++ * Add support for SH4 (Nobuhiro Iwamatsu).
++ * Fix crash in the ARM assembler interpreter (Edward Nevill).
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 06 Jan 2010 15:52:50 +0100
++
++openjdk-6 (6b17~pre3-1ubuntu2) lucid; urgency=low
++
++ * Update IcedTea build infrastructure (20091224).
++ * Explicitely build-depend on x11-xkb-utils (xkbcomp is needed by
++ xvfb-run).
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 24 Dec 2009 12:43:00 +0100
++
++openjdk-6 (6b17~pre3-1ubuntu1) lucid; urgency=low
++
++ * Upload to lucid.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 18 Dec 2009 10:40:05 +0100
++
++openjdk-6 (6b17~pre3-1) unstable; urgency=low
++
++ * Update IcedTea build infrastructure (20091218).
++ * Install docs into the openjdk-6-jre-headless directory instead of
++ openjdk-6-jre.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 18 Dec 2009 10:00:08 +0100
++
++openjdk-6 (6b17~pre2-1ubuntu1) lucid; urgency=low
++
++ * Update IcedTea build infrastructure (20091215).
++ * Fix cacao build on armel with current optimization defaults.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 15 Dec 2009 16:41:12 +0100
++
++openjdk-6 (6b17~pre2-1) unstable; urgency=low
++
++ * Upload to unstable.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 09 Nov 2009 21:50:52 +0100
++
++openjdk-6 (6b17~pre2-0ubuntu3) lucid; urgency=low
++
++ * Security updates:
++ - (CVE-2009-3728) ICC_Profile file existence detection information leak
++ (6631533).
++ - (CVE-2009-3885) BMP parsing DoS with UNC ICC links (6632445).
++ - (CVE-2009-3881) resurrected classloaders can still have children
++ (6636650).
++ - (CVE-2009-3882) Numerous static security flaws in Swing (findbugs)
++ (6657026).
++ - (CVE-2009-3883) Mutable statics in Windows PL&F (findbugs) (6657138).
++ - (CVE-2009-3880) UI logging information leakage (6664512).
++ - (CVE-2009-3879) GraphicsConfiguration information leak (6822057).
++ - (CVE-2009-3884) zoneinfo file existence information leak (6824265).
++ - (CVE-2009-2409) deprecate MD2 in SSL cert validation (Kaminsky) (6861062).
++ - (CVE-2009-3873) JPEG Image Writer quantization problem (6862968).
++ - (CVE-2009-3875) MessageDigest.isEqual introduces timing attack
++ vulnerabilities (6863503).
++ - (CVE-2009-3876, CVE-2009-3877) OpenJDK ASN.1/DER input stream parser
++ denial of service (6864911).
++ - (CVE-2009-3869) JRE AWT setDifflCM stack overflow (6872357).
++ - (CVE-2009-3874) ImageI/O JPEG heap overflow (6874643.
++ - (CVE-2009-3871) JRE AWT setBytePixels heap overflow (6872358).
++ * Update IcedTea build infrastructure (20091109).
++ * Use hs16 on armel.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 09 Nov 2009 17:48:43 +0100
++
++openjdk-6 (6b17~pre2-0ubuntu2) lucid; urgency=low
++
++ * Don't use hs16 on armel and sparc.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 02 Nov 2009 15:33:00 +0100
++
++openjdk-6 (6b17~pre2-0ubuntu1) lucid; urgency=low
++
++ * New code drop (b17).
++ * Bump hotspot to hs16.
++ * Update IcedTea build infrastructure (20091031).
++ * Set priority of default -jre and -jdk packages to optional.
++ * Fix binary-all to binary-any dependencies. Closes: #550680.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 31 Oct 2009 19:30:54 +0100
++
++openjdk-6 (6b16-1.6.1-2) unstable; urgency=medium
++
++ * Build-depend on xulrunner-dev (>= 1.9.1.3-3).
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 11 Oct 2009 21:34:48 +0200
++
++openjdk-6 (6b16-1.6.1-1ubuntu3) karmic; urgency=low
++
++ [Matthias Klose]
++ * On armel and powerpc, build an additional VM using shark in the
++ openjdk-6-jre-zero package (java -shark <args>). Requires llvm-2.6.
++ * Hide the desktop menu entry for WebStart. LP: #222180.
++ * Don't provide java-virtual-machine anymore.
++
++ [Edward Nevill]
++ * Avoid stack overflows in the arm interpreter.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 08 Oct 2009 12:41:46 +0200
++
++openjdk-6 (6b16-1.6.1-1ubuntu2) karmic; urgency=low
++
++ * Support PKCS11 cryptography via NSS, now allowing import of all
++ certificates from ca-certificates.
++ * Remove Michael Koch from uploaders, request by himself.
++ * Add the doc dir symlink for openjdk-6-jre-zero when the package
++ is built with shark support.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 28 Sep 2009 21:55:08 +0200
++
++openjdk-6 (6b16-1.6.1-1ubuntu1) karmic; urgency=low
++
++ * Fix dependency on the java bridge packages.
++ * debian/rules: Conditionalize stuff so that the recent release
++ is never mentioned.
++ * Remove obsolete patches in debian/patches.
++ * Rebuild on armel to fix up libffi for the soft float abi.
++ * For jaunty builds, fix IcedTeaPlugin failure to start with xulrunner 1.9.1
++ (LP: #359407).
++ - debian/patches/icedtea-plugin-use-runtime-nsIProcess-IID.diff: Add.
++ - debian/rules: Apply it for jaunty builds.
++ * Use pulseaudio as default serviceprovider for
++ javax.sound.midi.MidiSystem and javax.sound.sampled.AudioSystem.
++ LP: #407299.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 26 Sep 2009 16:01:48 +0200
++
++openjdk-6 (6b16-1.6.1-1) unstable; urgency=low
++
++ * Upload to Debian unstable.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 15 Sep 2009 02:17:03 +0200
++
++openjdk-6 (6b16-1.6.1-0ubuntu1) karmic; urgency=low
++
++ * Update IcedTea6 to the 1.6.1 release.
++ * Work around GCC PR target/41327, build the JDK on s390 with -O2.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 10 Sep 2009 01:55:08 +0200
++
++openjdk-6 (6b16-1.6-1) unstable; urgency=low
++
++ * Update IcedTea6 to the 1.6 release.
++ * Fix GCC build dependencies.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 09 Sep 2009 22:18:38 +0200
++
++openjdk-6 (6b16-1.6~pre2-1) unstable; urgency=low
++
++ * Upload to unstable.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 28 Aug 2009 19:04:31 +0200
++
++openjdk-6 (6b16-1.6~pre2-0ubuntu1) karmic; urgency=low
++
++ * Update IcedTea from the 1.6 release branch:
++ - Fix buffer overflow in debugger's socket handler (Kees Cook).
++ https://bugs.openjdk.java.net/show_bug.cgi?id=100103. LP: #409736.
++ - plugin fixes.
++ * Move the pulseaudio recommendation to a suggestion, don't build-depend
++ on pulseaudio. Closes: #539394. LP: #361408.
++ * Build for armv6 (on armel).
++
++ [ Kees Cook ]
++ * debian/rules: Re-enable fortification and stack protector
++ (LP: #330713).
++ * Adding stack markings to the x86 assembly for not using executable
++ stack. LP: #419018.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 28 Aug 2009 18:51:34 +0200
++
++openjdk-6 (6b16-1.6~pre1-0ubuntu1) karmic; urgency=low
++
++ * Test build (icedtea6-1.6 release branch).
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 21 Aug 2009 19:44:42 +0200
++
++openjdk-6 (6b16~pre5-0ubuntu2) karmic; urgency=low
++
++ * Add explicit build dependency on libgtk2.0-dev.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 06 Aug 2009 11:39:14 +0200
++
++openjdk-6 (6b16~pre5-0ubuntu1) karmic; urgency=low
++
++ * Bump hotspot to hs14b16.
++ * Update IcedTea build infrastructure (20090805).
++ * patches/java-access-bridge-security.patch: Update.
++ * Build-depend on xulrunner-dev instead of xulrunner-1.9-dev on karmic.
++ * Don't recommend the jck fonts anymore, just suggest them; the appropriate
++ fonts are installed as dependencies of the language packs.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 06 Aug 2009 10:27:09 +0200
++
++openjdk-6 (6b16~pre4-0ubuntu7) karmic; urgency=low
++
++ * Build using GCC-4.4 on sparc as well, require 4.4.1.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 23 Jul 2009 18:23:14 +0200
++
++openjdk-6 (6b16~pre4-0ubuntu6) karmic; urgency=low
++
++ * Fix build failure building the zero VM.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 16 Jul 2009 09:49:36 -0400
++
++openjdk-6 (6b16~pre4-0ubuntu5) karmic; urgency=low
++
++ [Matthias Klose]
++ * Update IcedTea build infrastructure (20090715).
++ * Tighten build dependency on llvm-dev.
++
++ [Edward Nevill]
++ * Add armv4 compatibility.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 15 Jul 2009 15:40:44 -0400
++
++openjdk-6 (6b16~pre4-0ubuntu4) karmic; urgency=low
++
++ [Edward Nevill]
++ * Added Bytecode Interpreter Generator.
++ * Added ARM templates for above.
++ * Removed old optimised ARM assebler.
++ * Added -g0 because of problems with ld linking -g.
++ * Changed alignment to 64 now that as bug is fixed.
++
++ [Matthias Klose]
++ * Update IcedTea build infrastructure (20090710).
++ * Let the -jre package depend on the access-bridge package, not the
++ -jre-headless package. LP: #395074.
++ * Suggested by Ed Nevill:
++ - Pass -timeout:3 when running the jtreg testsuite on zero architectures.
++ - Pass -Xmx256M -vmoption:-Xmx256M on armel for the jtreg testsuite run.
++ * Tighten build dependency on llvm-dev.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 03 Jul 2009 18:32:50 +0200
++
++openjdk-6 (6b16~pre4-0ubuntu3) karmic; urgency=low
++
++ * Update zero-port-opt patch on armel.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 24 Jun 2009 10:48:48 +0200
++
++openjdk-6 (6b16~pre4-0ubuntu2) karmic; urgency=low
++
++ * Update IcedTea build infrastructure (20090623).
++ * Reapply the zero-port-opt patch on armel.
++ * Do not use the IPA Mona font family by default. Closes: #521233.
++ * Build cacao with -fno-strict-aliasing.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 23 Jun 2009 16:23:38 +0200
++
++openjdk-6 (6b16-4) unstable; urgency=medium
++
++ * Build the zero binary package when building with shark.
++ * Build-depend on cpio. Closes: #532963.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 16 Jun 2009 07:52:19 +0200
++
++openjdk-6 (6b16-3) unstable; urgency=low
++
++ * Update IcedTea build infrastructure (20090612).
++ * Install the libaccess-bridge-java* symlinks again.
++ * Build zero on ix86 architectures with JIT support (shark). To use the zero
++ build without shark, use the `-Xint' option to operate in interpreted-only
++ mode.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 12 Jun 2009 17:31:34 +0200
++
++openjdk-6 (6b16-2) unstable; urgency=low
++
++ * Don't install libaccess-bridge-java* symlinks until
++ libaccess-bridge-java-jni is available on all architectures.
++ * Add missing build dependency on cacao-source.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 18 May 2009 14:02:59 +0200
++
++openjdk-6 (6b16-1) unstable; urgency=low
++
++ * Upload to unstable, based in 6b16 and IcedTea 1.5.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 17 May 2009 23:02:46 +0200
++
++openjdk-6 (6b16~pre3-0ubuntu1) karmic; urgency=low
++
++ * Update to hotspot hs14b15.
++ * Provide symlink for libjava-access-bridge-jni.so. LP: #375347.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 15 May 2009 00:41:24 +0200
++
++openjdk-6 (6b16~pre2-0ubuntu3) karmic; urgency=low
++
++ * Update IcedTea build infrastructure (20090513).
++ * Fix build failure when xvfb-run doesn't work, trying to access a
++ non-existing directory.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 13 May 2009 23:01:23 +0200
++
++openjdk-6 (6b16~pre2-0ubuntu2) karmic; urgency=low
++
++ * Add libffi-dev as architecture independent build dependency.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 11 May 2009 08:41:42 +0200
++
++openjdk-6 (6b16~pre2-0ubuntu1) karmic; urgency=low
++
++ * Update to re-tagged code drop (b16).
++ * Update IcedTea build infrastructure (20090510).
++ * Remove patches integrated in IcedTea.
++ * Remove GCJ Web Plugin support.
++ * Remove build infrastructure to build additional VM's, integrated
++ in IcedTea.
++ * Stop building the openjdk-6-source-files package.
++ * README.Debian: Document using the different VM's.
++ * Use GCC-4.3 on sparc, ICE with GCC-4.4.
++ * Fix problem with the ARM assembler interpreter, when executing a 'new'
++ bytecode with a double on the top of the stack (Edward Nevill).
++ * Run the testsuite for the zero build on ix86 architectures.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 10 May 2009 23:37:42 +0200
++
++openjdk-6 (6b16~pre1-0ubuntu1) karmic; urgency=low
++
++ * New code drop (b16).
++ * Update IcedTea build infrastructure (20090429).
++ * Merge changes from 6b14-1.4.1.
++ * Fix section names (using the java section).
++ * Remove all UTF-8 sequence definitions from the font configuration.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 29 Apr 2009 11:33:07 +0200
++
++openjdk-6 (6b14-1.4.1-0ubuntu9) jaunty; urgency=low
++
++ * Reenable the testsuite (revert the change in last upload).
++ * Apply fix for the ARM bytecode interpreter (Edward Nevill).
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 18 Apr 2009 11:24:27 +0200
++
++openjdk-6 (6b14-1.4.1-0ubuntu7) jaunty; urgency=low
++
++ * Don't use some indian fonts with diverging font metrics for the
++ latin-1.UTF-8 encoding. LP: #289784.
++ * Disable running the testsuite for this build (no code changes compared
++ to the previous upload).
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 14 Apr 2009 11:46:25 +0200
++
++openjdk-6 (6b14-1.4.1-0ubuntu6) jaunty; urgency=low
++
++ * Fix native2ascii jdk test case, which let the jdk testsuite fail.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 10 Apr 2009 11:58:44 +0200
++
++openjdk-6 (6b14-1.4.1-0ubuntu5) jaunty; urgency=low
++
++ [Matthias Klose]
++ * Update to the final CACAO 0.99.4 release.
++ * Security Vulnerability Fixes for OpenJDK:
++ - 6522586: Enforce limits on Font creation.
++ - 6536193: flaw in UTF8XmlOutput.
++ - 6610888: Potential use of cleared of incorrect acc in JMX Monitor.
++ - 6610896: JMX Monitor handles thread groups incorrectly.
++ - 6630639: lightweight HttpServer leaks file descriptors on no-data
++ connections.
++ - 6632886: Font.createFont can be persuaded to leak temporary files.
++ - 6636360: compiler/6595044/Main.java test fails with 64bit java on
++ solaris-sparcv9 with SIGSEGV.
++ - 6652463: MediaSize constructors allow to redefine the mapping of
++ standard MediaSizeName values.
++ - 6652929: Font.createFont(int,File) trusts File.getPath.
++ - 6656633: getNotificationInfo methods static mutable (findbugs).
++ - 6658158: Mutable statics in SAAJ (findbugs).
++ - 6658163: txw2.DatatypeWriter.BUILDIN is a mutable static (findbugs).
++ - 6691246: Thread context class loader can be set using JMX remote
++ ClientNotifForwarded.
++ - 6717680: LdapCtx does not close the connection if initialization fails.
++ - 6721651: Security problem with out-of-the-box management.
++ - 6737315: LDAP serialized data vulnerability.
++ - 6792554: Java JAR Pack200 header checks are insufficent.
++ - 6804996: JWS PNG Decoding Integer Overflow [V-flrhat2ln8].
++ - 6804997: JWS GIF Decoding Heap Corruption [V-r687oxuocp].
++ - 6804998: JRE GIF Decoding Heap Corruption [V-y6g5jlm8e1].
++ * Add security patch for the lcms library.
++ * Add accessibility patches java-access-bridge-security.patch and
++ accessible-toolkit.patch.
++ * Merge fixes for testsuite failures from the IcedTea6 branch.
++ * Merge the proxy support for the plugin from the IcedTea6 branch.
++ * Merge http://icedtea.classpath.org/hg/release/icedtea6-1.4.1/rev/546ef0cdee06
++ (TJ). LP: #344705.
++ * Add a Xb-Npp-Description for the IcedTea plugin. LP: #272010.
++
++ [Edward Nevill]
++ * Put VFP back in - selects VFP / novfp autmatically
++ * More assembler optimisations
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 09 Apr 2009 14:14:12 +0200
++
++openjdk-6 (6b14-1.4.1-0ubuntu4) jaunty; urgency=low
++
++ * Disable the additional zero JVM on sparc.
++ * patches/hotspot/default/icedtea-includedb.patch: Add missing include in
++ openjdk/hotspot/src/share/vm/includeDB_core.
++ * Fix build failure of the zero VM on lpia with a fixed GCC.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 13 Mar 2009 16:39:27 +0100
++
++openjdk-6 (6b14-1.4.1-0ubuntu3) jaunty; urgency=low
++
++ * Build the Zero/Shark VM as an additional JVM (call as `java -zero').
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 07 Mar 2009 20:54:28 +0100
++
++openjdk-6 (6b14-1.4.1-0ubuntu2) jaunty; urgency=low
++
++ * Fix zero-port-opt patching (build failure on armel).
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 05 Mar 2009 18:19:18 +0100
++
++openjdk-6 (6b14-1.4.1-0ubuntu1) jaunty; urgency=low
++
++ * Update IcedTea to the 1.4.1 release.
++ * Build the Cacao VM as an additional JVM (call as `java -cacao').
++ * Build in separate build directory.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 05 Mar 2009 15:16:02 +0100
++
++openjdk-6 (6b14-1.5~pre1-5) unstable; urgency=low
++
++ * Fix build failure on armel.
++ * Require the final cacao-0.99.4 release.
++ * Add /usr/lib/jni to the library path. Closes: #517338.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 17 Mar 2009 09:37:20 +0100
++
++openjdk-6 (6b14-1.5~pre1-4) unstable; urgency=low
++
++ * Disable the additional zero JVM on sparc.
++ * Fix casts in hotspot on s390. Closes: #518823.
++ * Add special flags for javac on s390 to work around a VM problem with bad
++ code generation during inlining.
++ * Run the testsuites for the default VM on all architectures.
++ * Update IcedTea (20090314).
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 14 Mar 2009 18:29:49 +0100
++
++openjdk-6 (6b14-1.5~pre1-3) unstable; urgency=low
++
++ * Don't configure the additional zero JVM with --enable-shark, currently
++ fails to build.
++ * Don't build the JDK when building the additional zero JVM.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 07 Mar 2009 21:11:16 +0100
++
++openjdk-6 (6b14-1.5~pre1-2) experimental; urgency=low
++
++ * Build the Zero/Shark VM as an additional JVM (call as `java -zero').
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 06 Mar 2009 11:16:07 +0100
++
++openjdk-6 (6b14-1.5~pre1-0ubuntu1) jaunty; urgency=low
++
++ * Update hotspot to 14.0-b10.
++ * Update IcedTea (20090305).
++ * Build the Cacao VM as an additional JVM (call as `java -cacao').
++ * Build in separate build directory.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 05 Mar 2009 15:16:02 +0100
++
++openjdk-6 (6b14-0ubuntu17) jaunty; urgency=low
++
++ [ Edward Nevill ]
++ * Remove VFP from asm loop
++ * Disble the mauve testsuite for armel.
++
++ [Matthias Klose]
++ * Update IcedTea (20090302).
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 02 Mar 2009 16:18:01 +0100
++
++openjdk-6 (6b14-0ubuntu16) jaunty; urgency=low
++
++ * Regenerate auto files.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 18 Feb 2009 15:20:10 +0100
++
++openjdk-6 (6b14-0ubuntu15) jaunty; urgency=low
++
++ [ Edward Nevill ]
++ * Added ARM assembler interpreter loop
++ * mauve and jtreg removed again for alpha release
++
++ [Matthias Klose]
++ * Update IcedTea (20090218).
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 18 Feb 2009 13:35:02 +0100
++
++openjdk-6 (6b14-0ubuntu14) jaunty; urgency=low
++
++ * Configure with --disable-nio2 on armel as well.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 13 Feb 2009 10:13:55 +0100
++
++openjdk-6 (6b14-0ubuntu13) jaunty; urgency=low
++
++ * Really configure with --disable-nio2.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 12 Feb 2009 17:26:43 +0100
++
++openjdk-6 (6b14-0ubuntu12) jaunty; urgency=low
++
++ * Configure with --disable-nio2.
++ * Run mauve and jtreg testsuites on armel.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 11 Feb 2009 13:00:15 +0100
++
++openjdk-6 (6b14-0ubuntu11) jaunty; urgency=low
++
++ [Edward Nevill]
++ * Performance improvements for the zero build (currently applied
++ on armel only).
++
++ [Matthias Klose]
++ * Update IcedTea (20090210).
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 10 Feb 2009 15:29:22 +0100
++
++openjdk-6 (6b14-0ubuntu10) jaunty; urgency=low
++
++ * Explicitely remove PulseAudioMuteControl.java.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 26 Jan 2009 22:09:21 +0100
++
++openjdk-6 (6b14-0ubuntu9.1) jaunty; urgency=low
++
++ * Test build.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 25 Jan 2009 17:03:51 +0100
++
++openjdk-6 (6b14-0ubuntu9) jaunty; urgency=low
++
++ * Update IcedTea build infrastructure (20090125).
++ * Run the jtreg testsuite for cacao builds, save all test logs.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 25 Jan 2009 15:40:52 +0100
++
++openjdk-6 (6b14-0ubuntu8) jaunty; urgency=low
++
++ * Fix merge error, don't apply patches twice.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 19 Jan 2009 01:15:19 +0100
++
++openjdk-6 (6b14-0ubuntu7) jaunty; urgency=low
++
++ * debian/rules: Call dh_desktop. LP: #309999.
++ * Add dependency on libjpeg62 for the -headless package. LP: #318383.
++ * Test some jtreg tests which fail in samevm mode in a separate VM.
++ * Build all with -fno-stack-protector -U_FORTIFY_SOURCE.
++ * Include jtr files of failed tests in the -jdk package.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 19 Jan 2009 00:23:22 +0100
++
++openjdk-6 (6b14-0ubuntu6) jaunty; urgency=low
++
++ * The -source package now contains all source files. Closes: #504568.
++ * The 6b14 build fixes the following security related issues (sun bug number,
++ CVE, description):
++ - 6588160, CVE-2008-5348: jaas krb5 client leaks OS-level UDP sockets.
++ - 6497740, CVE-2009-5349: Limit the size of RSA public keys.
++ - 6484091, CVE-2008-5350: FileSystemView leaks directory info.
++ - 4486841, CVE-2008-5351: UTF-8 decoder needed adhere to Unicode 3.0.1
++ fixes.
++ - 6755943, CVE-2008-5352: JAR decompression should enforce stricter header
++ checks.
++ - 6734167, CVE-2008-5353: Calendar.readObject allows elevation of
++ privileges.
++ - 6733959, CVE-2008-5354: Insufficient checks for "Main-Class" manifest
++ entry in JAR files
++ - 6751322, CVE-2008-5356: Sun Java JRE TrueType Font Parsing Heap Overflow.
++ - 6733336, CVE-2008-5357: Crash on malformed font.
++ - 6766136, CVE-2008-5358: corrupted gif image may cause crash in java
++ splashscreen library.
++ - 6726779, CVE-2008-5359: ConvolveOp on USHORT raster can cause the JVM
++ crash.
++ - 6721753, CVE-2008-5360: File.createTempFile produces guessable file names.
++ - 6592792: Add com.sun.xml.internal to the "package.access" property in
++ $JAVA_HOME/lib/security/java.security.
++ * Regenerate the control file.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 13 Jan 2009 15:04:36 +0100
++
++openjdk-6 (6b14-0ubuntu2~ppa1) intrepid; urgency=low
++
++ * Upload to the OpenJDK PPA for intrepid.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 13 Jan 2009 13:28:38 +0100
++
++openjdk-6 (6b14-0ubuntu5) jaunty; urgency=low
++
++ * Update IcedTea build infrastructure (20090113).
++ * Rebuild with updated nss/nspr packages.
++ * Update debug patches.
++ * debian/patches/nonreparenting-wm.diff: If the _JAVA_AWT_WM_NONREPARENTING
++ environment variable is set, disable all workarounds causing blank windows
++ in non-reparentizing window managers (Bernhard R. Link). Closes: #508650.
++ * Fix location of plugin for Debian. Closes: #505726.
++ * Let the -jdk package provide java-compiler. Closes: #507641.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 13 Jan 2009 10:18:44 +0100
++
++openjdk-6 (6b14-0ubuntu4) jaunty; urgency=low
++
++ * Use a default jvm.cfg not only for java, but for all jdk tools.
++ LP: #288616.
++ * Update IcedTea build infrastructure (20081223).
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 23 Dec 2008 09:24:23 +0100
++
++openjdk-6 (6b14-0ubuntu3) jaunty; urgency=low
++
++ * Update IcedTea build infrastructure (20081217).
++ * Add support for PARISC.
++ * Use a default jvm.cfg if the jvm.cfg doesn't yet exist after unpacking
++ the runtime package. LP: #288616.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 17 Dec 2008 09:58:26 +0100
++
++openjdk-6 (6b14~pre1-0ubuntu2) jaunty; urgency=low
++
++ * Install hotspot tarball in -source-files package.
++ * Fix build failure on sparc.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 05 Dec 2008 09:43:51 +0100
++
++openjdk-6 (6b14~pre1-0ubuntu1) jaunty; urgency=low
++
++ * New code drop (b14).
++ * Update IcedTea build infrastructure (20081204).
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 04 Dec 2008 11:40:56 +0100
++
++openjdk-6 (6b13~pre2-0ubuntu2) jaunty; urgency=low
++
++ * Update IcedTea build infrastructure (20081203).
++ - Fix build failures on zero based architectures.
++ * Add build dependency on libxrender-dev.
++ * Don't use fastjar on ia64, working around a build failure.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 03 Dec 2008 18:43:23 +0100
++
++openjdk-6 (6b13~pre2-0ubuntu1) jaunty; urgency=low
++
++ * Update IcedTea build infrastructure (20081202).
++ - Add Dec 3 OpenJDK security patches
++ * Build with --with-hotspot-build, update patches for this config.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 03 Dec 2008 01:05:54 +0100
++
++openjdk-6 (6b13~pre1-0ubuntu4) jaunty; urgency=low
++
++ * Update IcedTea build infrastructure (20081122).
++ - Fixes for the IcedTeaPlugin. LP: #300254.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 22 Nov 2008 10:42:10 +0100
++
++openjdk-6 (6b13~pre1-0ubuntu3) jaunty; urgency=low
++
++ * Fix versioned conflict on icedtea-gcjwebplugin. LP: #284299.
++ * Update IcedTea build infrastructure (20081121).
++ - Fixes for the IcedTeaPlugin.
++ * Configure with pulseaudio in jaunty.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 21 Nov 2008 07:46:10 +0100
++
++openjdk-6 (6b13~pre1-0ubuntu2) jaunty; urgency=low
++
++ * Update IcedTea build infrastructure (20081117).
++ * Use openjdk-6 as stage1 compiler on armel for a faster build.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 17 Nov 2008 18:43:17 +0100
++
++openjdk-6 (6b13~pre1-0ubuntu1) jaunty; urgency=low
++
++ * New code drop (b13).
++ - In the langtools area, besides a few miscellaneous bug fixes (6760834,
++ 6725036, 6657499), all the langtools regression tests now pass out of
++ the box (6728697, 6707027) and if using the most recent version of
++ jtreg, the langtools regression tests can be run in the much faster
++ "same vm" mode of jtreg, enabled with the -s option (6749967, 6748541,
++ 6748546, 6748601, 6759775, 6759795, 6759796, 6759996, 6760805, 6760930).
++ - Gervill update, including applying a patch from IcedTea (6758986,
++ 6748247, 6748251).
++ - Publishing a few dozen additional existing regression tests as open
++ source (6601457, 6759433, 6740185).
++ - JMX and monitoring fixes (6651382, 6616825, 6756202, 6754672).
++ - Man page updates (6757036, 6392810, 6504867, 6326773).
++ - Assorted other fixes (6746055, 6621697, 6756569, 6356642, 6761678).
++ * Update IcedTea build infrastructure (20081111).
++ - Fix freeze in midi app, LP: #275672.
++ - Fixes in the IcedTeaPlugin: LP: #282570, LP: #282570, LP: #285729,
++ LP: #291377, LP: #37330, LP: #239533.
++ - Fix vertical text metrics with freetype scaler. LP: #289784.
++ * Build-depend on ecj-gcj instead of ecj on architectures using
++ gij/gcj as the bootstrap system.
++ * Fixed in 6b12: Stack overflow running Kea. LP: #244731.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 11 Nov 2008 12:39:16 +0100
++
++openjdk-6 (6b12-1~exp1) experimental; urgency=low
++
++ * Update IcedTea build infrastructure (20081025).
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 25 Oct 2008 23:35:14 +0200
++
++openjdk-6 (6b12-0ubuntu6) intrepid; urgency=low
++
++ * Make the dependency on ca-certificates-java unversioned.
++ * Merge from IcedTea:
++ - plugin/icedtea/netscape/javascript/JSObject.java: Make
++ long constructor public.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 24 Oct 2008 23:06:32 +0200
++
++openjdk-6 (6b12-0ubuntu5) intrepid; urgency=low
++
++ * Update IcedTea build infrastructure (20081024).
++ - Add --pkgversion=<package version> configure option.
++ - IcedTeaPlugin fixes.
++ - Fix xjc regressions.
++ * openjdk-jre-headless: Depend on ca-certificates-java.
++ * Configure with --pkgversion=<package version> to encode the package
++ version in the -version output and in vm dumps.
++ * cacao: Handle VM options Xverify:all and Xverify:none.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 24 Oct 2008 13:39:29 +0200
++
++openjdk-6 (6b12-0) experimental; urgency=low
++
++ * Upload to experimental.
++ * Pretend the availability of at least 384MB RAM; better swap on the
++ buildds than failing the build.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 19 Oct 2008 11:15:28 +0200
++
++openjdk-6 (6b12-0ubuntu4) intrepid; urgency=low
++
++ * Update IcedTea build infrastructure (20081019).
++ - plugin fix (Make applet size factors doubles instead of ints).
++ * Don't fail the build when the jtreg summary is missing.
++ * openjdk-6-source-files: Fix priority and section of the binary package.
++ * Fix section of the plugin package.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 19 Oct 2008 09:29:03 +0200
++
++openjdk-6 (6b12-0ubuntu3) intrepid; urgency=low
++
++ * Update IcedTea build infrastructure (20081018).
++ - Fix LiveConnect issues in the web plugin. LP: #282762.
++ - Fail the build, if patches don't apply.
++ * Show xvfb and xauth failures in the build log, when running the testsuites.
++ * Kill processes which still hang after running the testsuite. Closes: #493339.
++ * Run the testsuite in parallel, reducing build time.
++ * openjdk-headless: Depend instead of recommending tzdata-java.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 18 Oct 2008 17:15:14 +0200
++
++openjdk-6 (6b12-0ubuntu2) intrepid; urgency=low
++
++ * icedtea6-plugin: Versioned conflict with icedtea-gcjwebplugin. LP: #184299.
++ * Don't configure --with-alt-jar=/usr/bin/fastjar on hotspot archs
++ and cacao builds. Working around a problem generating rt.jar. Manually
++ add the netscape/javascript files in zero builds.
++ * Update IcedTea build infrastructure (20081017).
++ - configury updates.
++ - IcedTeaPlugin update.
++ * openjdk-6-jdk: Suggest visualvm.
++ * Remove cacao patches found in cacao 0.99.4~20081012.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 17 Oct 2008 13:25:45 +0200
++
++openjdk-6 (6b12-0ubuntu1) intrepid; urgency=low
++
++ * Update IcedTea to the 1.3.0 release.
++ * Apply upstream patch to fix upstream issue 6758986.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 15 Oct 2008 19:49:05 +0000
++
++openjdk-6 (6b12~pre2-1) experimental; urgency=low
++
++ * Upload to experimental.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 12 Oct 2008 11:16:03 +0000
++
++openjdk-6 (6b12~pre2-0ubuntu3) intrepid; urgency=low
++
++ * Update IcedTea build infrastructure (20081015).
++ * Add netscape/javascript class files to rt.jar. LP: #282762.
++ * Be more verbose in the icedtea6-plugin package description.
++ * Fix some lintian warnings.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 15 Oct 2008 12:45:59 +0200
++
++openjdk-6 (6b12~pre2-0ubuntu2) intrepid; urgency=low
++
++ * Update IcedTea build infrastructure (20081012).
++ * When building as cacao, build a cacao-oj6-plugin package.
++ * When building as cacao, run the testsuite on amd64, i386, sparc.
++ * Add finnish translations to the desktop files (Timo Jyrinki).
++ Closes: #494354.
++ * Fix font paths (Rob Gom). Closes: #495988.
++ * Reenable running the testsuite.
++ * Fix pulse-java build failure on amd64.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 12 Oct 2008 13:05:49 +0200
++
++openjdk-6 (6b12~pre2-0ubuntu1) intrepid; urgency=low
++
++ * Update IcedTea build infrastructure (20081011).
++ * debian/copyright: Add copyright notice for pulseaudio sound files.
++ * Add support to build with pulseaudio support.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 11 Oct 2008 15:44:50 +0200
++
++openjdk-6 (6b12~pre1-0ubuntu5) intrepid; urgency=low
++
++ * Move the plugin from the -jre package into the -plugin package.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 10 Oct 2008 06:55:34 +0000
++
++openjdk-6 (6b12~pre1-0ubuntu4) intrepid; urgency=low
++
++ * Update IcedTea build infrastructure (20081009).
++ * Configure with --enable-liveconnect, build an icedtea6-plugin package.
++ Thanks to Deepak Bhole.
++ LP: #207064, #195783, #199680, #202762, #220241, #242263, #242496,
++ #242496, #250292, #269885, #274356, #274360, #259313.
++ * Build an icedtea6-plugin package.
++ * Merge changes from 6b11-9 packaging.
++ * Build a openjdk-6-source-files packages (used as a build dependency
++ of cacao-oj6).
++ * Build depend on cacao-source for cacao-oj6 builds.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 09 Oct 2008 15:04:27 +0200
++
++openjdk-6 (6b12~pre1-0ubuntu3) intrepid; urgency=low
++
++ * Update IcedTea build infrastructure (20080915).
++ * Reapply: openjdk-6-jre-headless: Make libnss-mdns a suggestion
++ instead of a recommendation. LP: #261847.
++ * Build-depend against fixed fastjar. LP: #267177.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 15 Sep 2008 20:16:51 +0200
++
++openjdk-6 (6b12~pre1-0ubuntu2) intrepid; urgency=low
++
++ * Update the icedtea-hotspot patch to b12, fixing build failures
++ on zero archs (ia64, powerpc).
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 13 Sep 2008 11:48:44 +0200
++
++openjdk-6 (6b12~pre1-0ubuntu1) intrepid; urgency=low
++
++ * New code drop (b12).
++ * Update IcedTea build infrastructure (20080912).
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 13 Sep 2008 00:41:42 +0200
++
++openjdk-6 (6b11-6) unstable; urgency=low
++
++ * Set minimum heap size independent of available memory for cacao builds.
++ * Link the wrapper tools with -rdynamic for cacao builds.
++ * Update cacao based builds:
++ - Update cacao to 0.99.3, remove patches applied upstream.
++ - Fix build failures on mipsel-linux.
++ * Allow setting of the bootstrap compiler per architecture.
++ * Configure --with-alt-jar set to fastjar to speed up builds.
++ * Update IcedTea build infrastructure (20080815), remove local patches
++ integrated in IcedTea.
++ - Make use of unsigned/signed types explicit.
++ - Fix PR icedtea/184, adding support for returning floats and doubles
++ for zero builds.
++ - Fix Fix PR icedtea/181, class type checks.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 15 Aug 2008 16:59:48 +0000
++
++openjdk-6 (6b11-5) unstable; urgency=low
++
++ * debian/rules (stamps/mauve-build): Configure with --host and --build.
++ * openjdk-6-jdk: Recommend libxt-dev (jawt_md.h header includes).
++ * Fix build issues on s390 (size_t is unsigned long).
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 03 Aug 2008 20:05:44 +0200
++
++openjdk-6 (6b11-4) unstable; urgency=low
++
++ * Update IcedTea build infrastructure (20080801).
++ - Fix typo, causing build failure on mipsel.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 01 Aug 2008 01:25:51 +0200
++
++openjdk-6 (6b11-3) unstable; urgency=low
++
++ * Include the name of the VM used in the package description.
++ * Update IcedTea build infrastructure (20080731).
++ * Build for alpha, arm, mips and mipsel.
++ * Switch from libcupsys2(-dev) to libcups2(-dev) for newer releases.
++ (Closes: #492384)
++ * Add symlinks for header files found in JAVA_HOME/include/linux in
++ JAVA_HOME/include.
++ * openjdk-6-jre: Don' recommend lesstif2 anymore.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 31 Jul 2008 17:16:59 +0200
++
++openjdk-6 (6b11-2ubuntu1) intrepid; urgency=low
++
++ * xvfb seems to be broken when running with intrepid and an intrepid kernel.
++ Nevertheless, run xvfb-run -s "-extension GLX" on the buildds (hardy kernels).
++ * Stop the buildwatch process after the testsuite finishes.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 25 Jul 2008 12:33:44 +0200
++
++openjdk-6 (6b11-2) unstable; urgency=low
++
++ * Update IcedTea build infrastructure (20080724).
++ * debian/buildwatch.sh: Track long building files with no visible output.
++ * Fix build failure when not running the mauve testsuite.
++ * Disable running the testsuite for cacao builds (leaving processes around).
++ * Don't set a soversion for the cacao libjvm.
++ * Configure with --host and --build.
++ * Call xvfb-run with -s "-extension GLX".
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 24 Jul 2008 22:25:30 +0200
++
++openjdk-6 (6b11-1ubuntu2) intrepid; urgency=low
++
++ * Update IcedTea build infrastructure (20080724).
++ * debian/buildwatch.sh: Track long building files with no visible output.
++ * Fix build failure when not running the mauve testsuite.
++ * Disable running the testsuite for cacao builds (leaving processes around).
++ * Don't set a soversion for the cacao libjvm.
++ * Configure with --host and --build.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 24 Jul 2008 17:58:53 +0200
++
++openjdk-6 (6b11-1ubuntu1) intrepid; urgency=low
++
++ * Regenerate the control file.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 23 Jul 2008 00:42:16 +0200
++
++openjdk-6 (6b11-1) unstable; urgency=low
++
++ * New code drop (b11).
++ * Update IcedTea build infrastructure (20080721).
++ * debian/generate-dfsg.sh: Update for b11.
++ * debian/patches/const_strings.patch, debian/patches/issue-6659207.diff:
++ Remove, applied upstream.
++ * debian/generate-debian-orig.sh: Fix /proc check.
++ * debian/control.in: Loosen dependency of -jre-lib on -jre.
++ * Support `nodocs' in DEB_BUILD_OPTIONS.
++ * Remove build-dependency on lesstif2-dev.
++ * Bootstrap using gcj on all archs; the 6b10dfsg-2 packages are broken.
++ * Run the jtreg harness in a virtual X environment.
++ * Install javazic.jar in the jre-lib package.
++ * Don't run the testsuite on arm; the build already takes days; only
++ run the testsuite on hotspot archs and powerpc.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 23 Jul 2008 00:28:12 +0200
++
++openjdk-6 (6b10dfsg-2) unstable; urgency=low
++
++ * Update IcedTea build infrastructure (20080714).
++ * On arm configure cacao builds with --enable-softfloat.
++ * Don't run the mauve testsuite for cacao builds (hangs the test runner
++ process).
++ * Don't configure cacao builds with --enable/-disable-zero.
++ * Don't remove alternatives on upgrade.
++ * debian/copyright: Add license for NanoXML.
++ * Do recommends ttf-indic-fonts instead of ttf-indic-fonts-core for
++ lenny and sid. Closes: #490619.
++ * Ignore errors when registering the jar binfmt. The alternative may
++ already be registered by another JVM. Closes: #490594.
++ * openjdk-6-jre-headless: Depend on ttf-dejavu-core instead of ttf-dejavu.
++ * On amd64, i386 and sparc, bootstrap using openjdk.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 14 Jul 2008 19:41:19 +0200
++
++openjdk-6 (6b10dfsg-1ubuntu2) intrepid; urgency=low
++
++ * Update IcedTea build infrastructure (20080702).
++ - Do not configure --with-shark by default.
++ - Update license headers from jdk7.
++ * Start debian/buildwatch.sh for armel and sparc builds as well.
++ * Allow configuration with --with-cacao.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 30 Jun 2008 13:30:06 +0200
++
++openjdk-6 (6b10dfsg-1ubuntu1) intrepid; urgency=low
++
++ * The rebuilt upstream tarball now has GPL-compatible free software licenses
++ and documented copyrights and licenses. LP: #238569.
++ * Fixed name of the xulrunner-1.9-javaplugin.so in the .jinfo file.
++ LP: #226911.
++ * Ignore errors during activation of class data sharing. Closes: #490617,
++ #490672.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 30 Jun 2008 13:30:06 +0200
++
++openjdk-6 (6b10dfsg-1) unstable; urgency=low
++
++ * Rebuild the upstream tar ball:
++ - Remove the jscheme jar files.
++ - Apply the patch from Iris Clark (Sun) for the copyright headers
++ (http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=141#c4).
++ - Remove jdk/src/share/classes/java/lang/instrument/package.html.
++ - Upload to main.
++ * Update IcedTea build infrastructure (20080628).
++ * Build an openjdk-6-dbg package.
++ * patches/gcc-mtune-generic.diff: Fix typo.
++ * openjdk-6-jre: Depend on ttf-dejavu.
++ * debian/copyright: Add two more copyright holders, not directly
++ mentioned in the third party readme.
++ Replace Apache 2.0 license with pointer to common-licenses.
++ * Fix more lintian warnings.
++ * debian/sun_java_app.xpm: Downsize icon to 32x32 pixels.
++ * Build-depend/depend on rhino.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 29 Jun 2008 17:42:51 +0200
++
++openjdk-6 (6b10-1) unstable; urgency=low
++
++ * New code drop (b10).
++ - Still some non-compliant license headers found in
++ openjdk/corba/src/share/classes/com/sun/tools/corba/se/idl.
++ - Upload to non-free.
++ * Update IcedTea build infrastructure (20080603).
++ * In fontconfig.properties, fix Korean font names and add paths to the Luxi
++ fonts for Motif. Add fonts for Indic languages.
++ * Install compilefontconfig.jar in openjdk-6-jre-lib package.
++ * Run the testsuites of hotspot, langtools and jdk.
++ * Include the jscheme-5.0 sources in the tarball, mention the jscheme
++ licenses in debian/copyright.
++ * Use the certificates provided by the ca-certificates-java package.
++ * More fontconfig updates (Arne Goetje).
++ * Fix some lintian warnings.
++ * Correct build-dependency for openjdk based bootstraps.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 04 Jun 2008 01:46:52 +0200
++
++openjdk-6 (6b09-1~pre1) unstable; urgency=low
++
++ [ Matthias Klose ]
++ * New code drop (b09).
++ * Update IcedTea build infrastructure (20080528).
++ - Add missing color profiles. LP: #225174.
++ - Moved system properties defined in hotspot to TrustManagerFactoryImpl.
++ LP: #224455.
++ * 6636469_v4.diff: Remove, committed in IcedTea.
++ * debian/control: Update Vcs-* attributes.
++ * debian/JB-jre-headless.p*.in: Fix update-binfmts calls.
++ * Compress the man pages, fixing the slave symlinks of the alternatives.
++ * javaws.desktop: Add `%u' to the Exec key, remove -viewer option.
++ * openjdk-6-jre-headless: Recommends libnss-mdns.
++ * openjdk-6-jre-headless: Warn about unmounted /proc file system.
++ * debian/JB-jre.mime.in: Remove the -viewer option from command (Tan Rui
++ Boon).
++ * Add a `docs' symlink pointing to /usr/share/doc/openjdk-6. LP: #218405.
++ * Set maintainer to the team list.
++ * Add copyright notices for patches and generated files.
++ * Add helper scripts to modify upstream tarball and generate the debian
++ tarball.
++ * Fix names for browser alternatives in jinfo file, set browser_plugin_dirs
++ unconditionally.
++ * Recommend the ttf-wqy-zenhei font instead of ttf-arphic-uming, if the
++ latter is available in Truetype Collection (TTC) format only, add the
++ fontconfig changes as a patch.
++ * Make the cjk font packages configurable in the control file.
++ * Use GCC-4.3 on all platforms where available.
++ * Install a config file swing.properties, allowing a user to change
++ the default look and feel. LP: #229112.
++ * When trying to determine the executable name reading /proc/self/exe,
++ discard known prefixes used for unionfs mounts. LP: #224110.
++ * Explicitely configure with --disable-zero on hotspot architectures.
++ * Add fix for issue 6659207, access violation in CompilerThread0.
++ Addresses #478560. Needs checking: LP: #229207.
++ * Disable building the docs on ia64, powerpc and sparc, we don't build
++ architecture independent packages on these architectures.
++ * Explicitely configure --with-parallel-jobs, needed by the updated IcedTea.
++ * Backport the linux-sparc patches, enable building on sparc. LP: #154080.
++ * Don't use an absolute path calling the compiler.
++ * Replace the OpenJDK version in desktop and menu files.
++ * Install menu files.
++ * Install openjdk-6-java.desktop in -jre, instead of -jre-headless.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 14 May 2008 08:49:54 +0200
++
++openjdk-6 (6b08-1) unstable; urgency=low
++
++ [ Torsten Werner ]
++ * first upload to Debian (Closes: #452750)
++ * Regenerate debian/control.
++ * Switch to bzip2 package compression in Debian but leave lzma compression
++ in Ubuntu.
++ * Temporarily downgrade Depends: tzdata-java to Recommends until the package
++ becomes available in Debian.
++ * Add myself to Uploaders.
++ * Do not install extras license file in openjdk-6-jre-lib.
++ * Add patch shebang.diff to fix a lintian warning.
++ * Install openjdk-6-java.desktop into the correct binary package.
++ * Improve some package descriptions.
++ * Remove some empty directories from binary packages.
++ * Install README.Debian in every binary package and give it some useful
++ content.
++ * Install java-rmi.cgi in package openjdk-6-jre-headless and mention it in
++ README.Debian.
++ * Install /usr/bin/jexec via update-alternatives.
++ * Downgrade Depends: java-common (>= 0.28).
++ * Add patch jexec.diff to make the jexec binary executable without
++ specifying an absolute path.
++ * Add Build-Depends: xauth and xfonts-base for mauve.
++ * Update and install the lintian override files.
++ * Replace all occurences of binary:Version and source:Version by
++ Source-Version to be compatible with Ubuntu release 6.06.
++ * Remove Conflicts: gcjwebplugin.
++
++ [ Michael Koch ]
++ * Fixed Vcs-Bzr and Vcs-Browser fields.
++ * Removed Encoding entry from all debian/*.desktop.in files.
++
++ [ Matthias Klose ]
++ * Make Java Full Screen Exclusive Mode work again with Xorg Server 1.3
++ and above (Dan Munckton). LP: #154613 (Java bug 6636469).
++ * Configure with --enable-zero on all archs except amd64, i386, lpia.
++ * Update IcedTea build infrastructure.
++ * Handle binary files in updates of the build infrastructure.
++ * Enable bootstrap/normal builds per architecture.
++ * javaws-wrapper.sh: Use readlink --canonicalize. LP: #211515.
++ * binfmt-support: Handle /usr/share/binfmts/jar as a slave symlink of
++ the jexec alternative, install the binfmt file in the jre libdir.
++ Use the jexec alternative in the binfmt file.
++ * JB-jre-headless.postinst.in: Remove sun-java6 specific chunks.
++ * Differentiate between the openjdk version required as dependency and
++ as build dependency.
++
++ -- Torsten Werner <twerner@debian.org> Wed, 09 Apr 2008 10:12:55 +0200
++
++openjdk-6 (6b08-0ubuntu1) hardy; urgency=low
++
++ * New code drop (b08).
++ * Update IcedTea build infrastructure.
++ * Move binfmt-support references from -jre to -jre-headless package.
++ * Don't fail on purge, if /var/lib/binfmts/openjdk-6 is missing. LP: #206721.
++ * Only use the basename for icons in desktop files. LP: #207413.
++ * Install javaws(1). LP: #191297.
++ * Install a wrapper script for javaws, which calls `javaws -viewer' if no
++ arguments are given (or else starting javaws from the desktop menu
++ would not do anything).
++ * debian/JB-web-start.applications.in: Remove the -viewer option from command.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 28 Mar 2008 16:10:32 +0000
++
++openjdk-6 (6b07-0ubuntu1) hardy; urgency=low
++
++ * New code drop (b07).
++ * Update IcedTea build infrastructure.
++ * debian/copyright: Update to OpenJDK Trademark Notice v1.1.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 22 Mar 2008 22:41:42 +0100
++
++openjdk-6 (6b06-0ubuntu12) hardy; urgency=low
++
++ * Update icon locations in menu files.
++ * openjdk-6-jre-headless: Provide java-virtual-machine. LP: #189953.
++ * openjdk-6-jre-headless: Add a conflict to gcjwebplugin; for openjdk
++ use the icetea-gcjwebplugin, for gij the java-gcj-compat-plugin.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 22 Mar 2008 20:12:41 +0100
++
++openjdk-6 (6b06-0ubuntu11) hardy; urgency=low
++
++ * Update IcedTea to 20080319.
++ * Move rt.jar into the openjdk-6-jre-headless package; sun/awt/X11
++ class files differ between amd64 and i386.
++ * Install all desktop files in /usr/share/applications.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 19 Mar 2008 23:53:36 +0100
++
++openjdk-6 (6b06-0ubuntu10) hardy; urgency=low
++
++ * Remove print-lsb-release.patch, forwarded to IcedTea.
++ * Fix IcedTea configure to detect libffi without pkg-config.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 12 Mar 2008 20:28:55 +0100
++
++openjdk-6 (6b06-0ubuntu9) hardy; urgency=low
++
++ * Build-depend on libffi4-dev on architectures other than amd64, i386, lpia.
++ * Install icons in /usr/share/pixmaps, not /usr/share/icons.
++ * debian/rules: Call dh_icons.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 12 Mar 2008 11:34:44 +0100
++
++openjdk-6 (6b06-0ubuntu8) hardy; urgency=low
++
++ * Tighten dependency on java-common.
++ * debian/copyright: Include trademark notice.
++ * debian/control: Mention IcedTea in the package descriptions.
++ * Update IcedTea to 20080311.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 11 Mar 2008 21:39:27 +0100
++
++openjdk-6 (6b06-0ubuntu7) hardy; urgency=low
++
++ * Build-depend on unzip.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 07 Mar 2008 16:47:43 +0100
++
++openjdk-6 (6b06-0ubuntu6) hardy; urgency=low
++
++ * Build-depend on zip.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 07 Mar 2008 16:16:52 +0100
++
++openjdk-6 (6b06-0ubuntu5) hardy; urgency=low
++
++ * debian/mauve_tests: javax.swing.text.html.HTML.ElementTagAttributeTest,
++ removed, tries to access the network.
++ * debian/README.alternatives.in: Update for --jre-headless.
++ * debian/rules: Fix paths for OpenJDK based bootstrap.
++ * Compress packages using lzma.
++ * Drop build dependency on zip, unzip.
++ * Fix build infrastructure to bootstrap with OpenJDK instead of ecj.
++ * Do not build the gcjwebplugin from the OpenJDK source.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 07 Mar 2008 13:53:15 +0100
++
++openjdk-6 (6b06-0ubuntu4) hardy; urgency=low
++
++ * Don't register a java-rmi.cgi alternative in /usr/bin.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 06 Mar 2008 17:59:35 +0100
++
++openjdk-6 (6b06-0ubuntu3) hardy; urgency=low
++
++ * Split out a openjdk-6-jre-headless package, depend on java-common,
++ supporting update-java-alternatives --jre-headless.
++ * Make openjdk-6-jre-headless and openjdk-6-jre architecture any.
++ * New package openjdk-6-jre-lib (arch all).
++ * Remove openjdk-6-bin package.
++ * debian/patches/openjdk-ubuntu-branding.patch: New patch.
++ * Install images/cursors/cursors.properties as a config file.
++ * Do not compress demos and examples in the -demo package.
++ * openjdk-6-jre: Add dependency on libxinerama1.
++ * Update IcedTea to 20080305.
++ * Don't generate cacerts ourself, but depend on ca-certificates,
++ fix location of javax.net.ssl.trustStore property.
++ * Build-depend on mauve and xvfb; run some mauve tests (the list of
++ tests taken from the Fedora package).
++ * Keep a backup of the `generated' directory; some files are regenerated
++ differently, increasing the size of the diff.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 06 Mar 2008 10:05:39 +0100
++
++openjdk-6 (6b06-0ubuntu2) hardy; urgency=low
++
++ * Re-add gawk and pkg-config as build dependencies.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 04 Mar 2008 12:20:21 +0100
++
++openjdk-6 (6b06-0ubuntu1) hardy; urgency=low
++
++ * New code drop (b06).
++ * Remove java-access-bridge tarball, use an externally built package.
++ * Update IcedTea to 20080304.
++ * Don't use any compiler flags from the environment.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 04 Mar 2008 09:16:59 +0100
++
++openjdk-6 (6b05-0ubuntu1) hardy; urgency=low
++
++ * First public OpenJDK upstream code drop (b05).
++ * Depend on tzdata-java.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 29 Feb 2008 19:05:42 +0100
++
++icedtea-java7 (7~b24-1.5+20080118-2) UNRELEASED; urgency=low
++
++ * Fix removal of alternatives.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 26 Jan 2008 18:41:40 +0100
++
++icedtea-java7 (7~b24-1.5+20080118-1) hardy; urgency=low
++
++ * Fix installation of the plugin for firefox-3.0.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 19 Jan 2008 15:10:18 +0100
++
++icedtea-java7 (7~b24-1.5+20080118-1~ppa1) hardy; urgency=low
++
++ * Update IcedTea to 20080118.
++ * Fix another build failure when gcc version != gcj version.
++ * Use the versioned compiler to build the corba parts.
++ * Register plugin for firefox-3.0.
++ * Build using GCC-4.3.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 18 Jan 2008 21:15:08 +0100
++
++icedtea-java7 (7~b24-1.5-2) UNRELEASED; urgency=low
++
++ * First upload to Debian. Closes: #452750.
++ * debian/control.in:
++ - Moved package from universe/devel section to devel.
++ - Put icedtea-java7-doc into doc section.
++ - Added Homepage field and removed Homepage pseudo field from
++ descriptions.
++ - Updated Standards-Version to 3.7.3.
++ * debian/rules:
++ - Check if Makefile exists before called clean in clean target.
++ * debian/copyright: Converted to UTF-8.
++
++ -- Michael Koch <konqueror@gmx.de> Sat, 05 Jan 2008 13:34:46 -0100
++
++icedtea-java7 (7~b24-1.5-1) hardy; urgency=low
++
++ * Update to IcedTea-1.5.
++ * debian/patches/ssp-interpreter.diff: Use bash to call the ssp script,
++ backslash handling differs betweend dash and bash.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 04 Jan 2008 09:58:27 +0100
++
++icedtea-java7 (7~b24-1.5~20071214-1) hardy; urgency=low
++
++ * New upstream snapshot (b24).
++ * Update java-access-bridge to 1.21.1.
++ * On powerpc keep the build alive using buildwatch script.
++ * Do not install menu entries for javaws, ControlPanel. LP: #155553, #156673.
++ * README.alternatives: Fix example. LP: #157063.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 14 Dec 2007 11:09:22 +0100
++
++icedtea-java7 (7~b23-1.5~20071124-4) hardy; urgency=low
++
++ * Allow libungif4-dev as alternative build dependency.
++ * On powerpc keep the build alive using buildwatch script.
++ * Always build the plugin using libxul-dev.
++
++ -- Matthias Klose <doko@ubuntu.com> Mon, 10 Dec 2007 15:20:16 +0100
++
++icedtea-java7 (7~b23-1.5~20071124-3) hardy; urgency=low
++
++ * Lower optimization to -O2 for building the jdk on amd64.
++ * Reenable parallel build.
++ * Link using -Bsymbolic-functions.
++ * debian/patches/arguments.patch, debian/patches/const_strings.patch:
++ New patches (Arnaud Vandyck).
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 29 Nov 2007 18:50:41 +0100
++
++icedtea-java7 (7~b23-1.5~20071124-2) hardy; urgency=low
++
++ * Bootstrap using ecj/gcj.
++ * Build using g++-4.1 on i386, lpia, powerpc.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 28 Nov 2007 14:46:48 +0000
++
++icedtea-java7 (7~b23-1.5~20071124-1) hardy; urgency=low
++
++ * New upstream snapshot (b23).
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 27 Nov 2007 15:48:08 +0100
++
++icedtea-java7 (7~b22-1.5~20071018-0ubuntu3) hardy; urgency=low
++
++ * Revert the previous change, require 7~b22 versions again.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 20 Oct 2007 14:33:26 +0000
++
++icedtea-java7 (7~b22-1.5~20071018-0ubuntu2) hardy; urgency=low
++
++ * Loosen dependencies to 7~b21, until package is built on all archs.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 20 Oct 2007 07:48:36 +0000
++
++icedtea-java7 (7~b22-1.5~20071018-0ubuntu1) hardy; urgency=low
++
++ * New upstream snapshot (b22).
++ * Don't use parallel builds to make the build log better comparable.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 19 Oct 2007 19:49:51 +0200
++
++icedtea-java7 (7~b21-1.4+20071007-0ubuntu5) gutsy; urgency=low
++
++ * Update icedtea to vcs 20071012 (1.4 release), checked that the plugin
++ works on amd64.
++ * debian/copyright: Update "License Headers" section.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 14 Oct 2007 19:55:12 +0200
++
++icedtea-java7 (7~b21-1.4+20071007-0ubuntu4) gutsy; urgency=low
++
++ * Bootstrapping trigger upload for final step of bootstrapping i386, amd64,
++ lpia.
++
++ -- LaMont Jones <lamont@ubuntu.com> Wed, 10 Oct 2007 22:04:25 -0600
++
++icedtea-java7 (7~b21-1.4+20071007-0ubuntu3) gutsy; urgency=low
++
++ * Add build dependency on bzip2.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 10 Oct 2007 09:00:40 +0000
++
++icedtea-java7 (7~b21-1.4+20071007-0ubuntu2) gutsy; urgency=low
++
++ * Add build dependency on ant.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 10 Oct 2007 06:33:14 +0000
++
++icedtea-java7 (7~b21-1.4+20071007-0ubuntu1) gutsy; urgency=low
++
++ * Update icedtea to vcs 20071007.
++ * Update java-access-bridge to 1.20.0.
++ * Add build-dependency on libxinerama-dev.
++ * Add Xb-Npp-xxx tags for the -plugin package.
++ * Name the plugin "GCJ Web Browser Plugin (using IcedTea)", GCJ now
++ "Great Cool Java" (according to Michael Koch).
++ * Compress binary-indep packages using bzip2.
++
++ -- Matthias Klose <doko@ubuntu.com> Sun, 7 Oct 2007 23:43:28 +0200
++
++icedtea-java7 (7~b21-1.4+20071002-0ubuntu2) gutsy; urgency=low
++
++ * Rebuild using icedtea 7~b21.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 02 Oct 2007 19:45:21 +0200
++
++icedtea-java7 (7~b21-1.4+20071002-0ubuntu1) gutsy; urgency=low
++
++ * New upstream snapshot (b21).
++ * Correctly unregister the executable binary format in the -bin package.
++ * Assemble the debian/copyright file.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 2 Oct 2007 09:59:37 +0200
++
++icedtea-java7 (7~b19-1.3+20070905-0ubuntu1) gutsy; urgency=low
++
++ * New upstream snapshot (b19).
++ * Build using g++-4.2 on amd64, using g++-4.1 on i386 and lpia.
++ * Build without -Werror, upstream source is not yet warning clean.
++ * Support DEB_BUILD_OPTIONS=parallel=<n>.
++ * Add build dependency on wget.
++ * Add font suggestions.
++ * Changed font configuration to fix CJK font support (Arne Goetje).
++ * Fix location of the plugin, when registering the plugin alternatives.
++
++ -- Matthias Klose <doko@ubuntu.com> Thu, 6 Sep 2007 00:46:40 +0200
++
++icedtea-java7 (7~b18-1.2+20070822-0ubuntu2) gutsy; urgency=low
++
++ * Create browser plugin directories.
++ * Build-depend on liblcms1-dev.
++ * Recommend packages with dlopened libraries: liblcms1, lesstif2, libcupsys2,
++ libgtk2.0-0, libgnome2-0, libgnomevfs2-0, libgconf2-4, libxrandr2,
++ libgl1-mesa-glx.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 21 Aug 2007 17:21:00 +0200
++
++icedtea-java7 (7~b18-1.2+20070822-0ubuntu1) gutsy; urgency=low
++
++ * New upstream version.
++ * Include java-access-bridge.
++ * Build -doc, -plugin packages.
++ * Register alternatives, priority 1060.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 21 Aug 2007 17:21:00 +0200
++
++icedtea-java7 (7~b17-1.2+20070808-1) gutsy; urgency=low
++
++ * Initial release, discard the initial packaging based on cdbs.
++ * Base the packaging on the sun-javaX packages.
++
++ -- Matthias Klose <doko@ubuntu.com> Wed, 08 Aug 2007 15:55:39 +0200
++
++icedtea (7~b16-20070724-1) UNRELEASED; urgency=low
++
++ * Update upstream tarball to 7~b16, update icedtea to 20070724.
++ * debian/control: Build-depend on libfreetype6-dev.
++ * debian/rules: Configure --with-jar=/usr/bin/fastjar.
++ * Build using gcj-4.2.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 24 Jul 2007 11:24:55 +0200
++
++icedtea (7~b14-20070704-1) unstable; urgency=low
++
++ * Initial version.
++
++ -- Michael Koch <konqueror@gmx.de> Wed, 04 Jul 2007 08:25:31 -0100
++
--- /dev/null
--- /dev/null
++9
--- /dev/null
--- /dev/null
++Source: openjdk-8
++Section: java
++Priority: optional
++Maintainer: OpenJDK Team <openjdk@lists.launchpad.net>
++Uploaders: Matthias Klose <doko@ubuntu.com>
++Build-Depends: debhelper (>= 9), quilt, m4, lsb-release, zip, unzip,
++ sharutils, gawk, cpio, pkg-config, procps, wdiff, tzdata,
++ xvfb, xauth, xfonts-base, libgl1-mesa-dri [!x32], xfwm4, x11-xkb-utils, dbus-x11,
++ jtreg, time,
++ fastjar (>= 2:0.96-0ubuntu2),
++ autoconf (>= 2.69), automake, autotools-dev, ant, ant-optional,
++ g++-6,
++ openjdk-8-jdk | openjdk-7-jdk,
++ libxtst-dev, libxi-dev, libxt-dev, libxaw7-dev, libxrender-dev, libcups2-dev, libasound2-dev, liblcms2-dev, libfreetype6-dev (>= 2.2.1), libxinerama-dev, libkrb5-dev, xsltproc, libpcsclite-dev, libgtk-3-dev,
++ libffi-dev,
++ zlib1g-dev, libattr1-dev, libpng-dev, libjpeg-dev, libgif-dev, libpulse-dev (>= 0.9.12) [!alpha], systemtap-sdt-dev [!sh4],
++ libnss3-dev (>= 2:3.17.1),
++ openjdk-8-jdk-headless <cross>, dpkg-dev (>= 1.17.14),
++Standards-Version: 4.3.0
++Homepage: http://openjdk.java.net/
++Vcs-Bzr: http://bazaar.launchpad.net/~openjdk/openjdk/openjdk8
++Vcs-Browser: https://code.launchpad.net/~openjdk/openjdk/openjdk8
++
++Package: openjdk-8-jdk-headless
++Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
++Multi-Arch: same
++Pre-Depends: ${dpkg:Depends}
++Depends: openjdk-8-jre-headless (= ${binary:Version}),
++ ${shlibs:Depends}, ${misc:Depends}
++Suggests: openjdk-8-demo, openjdk-8-source
++Provides: java-sdk-headless, java2-sdk-headless,
++ java5-sdk-headless, java6-sdk-headless,
++ java7-sdk-headless, java8-sdk-headless,
++Replaces: openjdk-8-jdk (<< 8u72-b15-4),
++Description: OpenJDK Development Kit (JDK) (headless)
++ OpenJDK is a development environment for building applications,
++ applets, and components using the Java programming language.
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: openjdk-8-jre-headless
++Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
++Multi-Arch: same
++Pre-Depends: ${dpkg:Depends}
++Depends: ${jredefault:Depends}, ${cacert:Depends},
++ ${tzdata:Depends}, ${jcommon:Depends}, ${dlopenhl:Depends},
++ ${mountpoint:Depends},
++ ${shlibs:Depends}, ${misc:Depends}
++Recommends: ${dlopenhl:Recommends}
++Suggests: libnss-mdns,
++ fonts-dejavu-extra,
++ fonts-ipafont-gothic, fonts-ipafont-mincho, fonts-wqy-microhei, fonts-wqy-zenhei, fonts-indic,
++Provides: java2-runtime-headless,
++ java5-runtime-headless, java6-runtime-headless,
++ java7-runtime-headless, java8-runtime-headless,
++ ${defaultvm:Provides}, ${jvm:Provides}
++Breaks: oracle-java8-installer (<< 8u77+8u77arm-1),
++ ${jrehl:Breaks}
++Description: OpenJDK Java runtime, using ${vm:Name} (headless)
++ Minimal Java runtime - needed for executing non GUI Java programs,
++ using ${vm:Name}.
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: openjdk-8-jdk
++Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
++Multi-Arch: same
++Pre-Depends: ${dpkg:Depends}
++Depends: openjdk-8-jre (= ${binary:Version}),
++ openjdk-8-jdk-headless (= ${binary:Version}),
++ ${shlibs:Depends}, ${misc:Depends}
++Recommends: libxt-dev
++Suggests: openjdk-8-demo, openjdk-8-source, visualvm
++Provides: java-sdk, java2-sdk, java5-sdk, java6-sdk,
++ java7-sdk, java8-sdk, java-compiler
++Description: OpenJDK Development Kit (JDK)
++ OpenJDK is a development environment for building applications,
++ applets, and components using the Java programming language.
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: openjdk-8-jre
++Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
++Multi-Arch: same
++Pre-Depends: ${dpkg:Depends}
++Depends: openjdk-8-jre-headless (= ${binary:Version}),
++ ${xandsound:Depends},
++ ${dlopenjre:Depends}, ${dep:bridge},
++ ${shlibs:Depends}, ${misc:Depends}
++Recommends: ${dlopenjre:Recommends}, fonts-dejavu-extra
++Suggests: icedtea-8-plugin, ${pkg:pulseaudio}
++Replaces: openjdk-8-jre-headless (<< 8u20~b20-3)
++Provides: java2-runtime,
++ java5-runtime, java6-runtime,
++ java7-runtime, java8-runtime
++Description: OpenJDK Java runtime, using ${vm:Name}
++ Full Java runtime environment - needed for executing Java GUI and Webstart
++ programs, using ${vm:Name}.
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: openjdk-8-demo
++Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
++Priority: optional
++Pre-Depends: ${dpkg:Depends}
++Depends: openjdk-8-jre (= ${binary:Version}),
++ ${shlibs:Depends}, ${misc:Depends}
++Description: Java runtime based on OpenJDK (demos and examples)
++ OpenJDK Java runtime
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: openjdk-8-source
++Architecture: all
++Priority: optional
++Pre-Depends: ${dpkg:Depends}
++Depends: openjdk-8-jre (>= ${source:Version}),
++ openjdk-8-jdk (>= ${binary:Version}),
++ ${misc:Depends}
++Replaces: openjdk-8-jdk (<< 8u20~b26-1~)
++Description: OpenJDK Development Kit (JDK) source files
++ OpenJDK is a development environment for building applications,
++ applets, and components using the Java programming language.
++ .
++ This package contains the Java programming language source files
++ (src.zip) for all classes that make up the Java core API.
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: openjdk-8-doc
++Section: doc
++Pre-Depends: ${dpkg:Depends}
++Architecture: all
++Priority: optional
++Depends: ${misc:Depends}
++Suggests: openjdk-8-jdk
++Description: OpenJDK Development Kit (JDK) documentation
++ OpenJDK is a development environment for building applications,
++ applets, and components using the Java programming language.
++ .
++ This package contains the API documentation.
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: openjdk-8-dbg
++Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
++Multi-Arch: same
++Priority: optional
++Section: debug
++Pre-Depends: ${dpkg:Depends}
++Depends: openjdk-8-jre-headless (= ${binary:Version}),
++ ${misc:Depends}
++Recommends: openjdk-8-jre (= ${binary:Version})
++Suggests: openjdk-8-jdk (= ${binary:Version})
++Description: Java runtime based on OpenJDK (debugging symbols)
++ OpenJDK is a development environment for building applications,
++ applets, and components using the Java programming language.
++ .
++ This package contains the debugging symbols.
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: openjdk-8-jre-zero
++Architecture: amd64 i386 arm64 ppc64 ppc64el sparc64 armhf kfreebsd-amd64 kfreebsd-i386
++Multi-Arch: same
++Priority: optional
++Pre-Depends: ${dpkg:Depends}
++Depends: openjdk-8-jre-headless (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
++Provides: ${zerovm:Provides}
++Description: Alternative JVM for OpenJDK, using Zero/Shark
++ The package provides an alternative runtime using the Zero VM and the
++ Shark Just In Time Compiler (JIT). Built on architectures in addition
++ to the Hotspot VM as a debugging aid for those architectures which don't
++ have a Hotspot VM.
++ .
++ The VM is started with the option `-zero'. See the README.Debian for details.
--- /dev/null
--- /dev/null
++
++Package: openjdk-8-jre-cacao
++Architecture: @cacao_archs@
++Multi-Arch: same
++Priority: optional
++Pre-Depends: ${dpkg:Depends}
++Depends: @basename@-jre-headless (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
++Provides: icedtea6-jre-cacao
++Description: Alternative JVM for OpenJDK, using Cacao
++ The package provides an alternative runtime using the Cacao VM and the
++ Cacao Just In Time Compiler (JIT). This is a somewhat faster alternative
++ than the Zero port on architectures like alpha, armel, m68k, mips, mipsel,
++ powerpc and s390.
++ .
++ The VM is started with the option `-cacao'. See the README.Debian for details.
--- /dev/null
--- /dev/null
++Source: @basename@
++Section: java
++Priority: optional
++Maintainer: OpenJDK Team <openjdk@lists.launchpad.net>
++Uploaders: Matthias Klose <doko@ubuntu.com>
++Build-Depends: debhelper (>= 9), quilt, m4, lsb-release, zip, unzip,
++ sharutils, gawk, cpio, pkg-config, procps, wdiff, tzdata,
++ xvfb, xauth, xfonts-base, libgl1-mesa-dri [!x32], xfwm4, x11-xkb-utils, dbus-x11,
++ jtreg, time,
++ @bd_fastjar@
++ @bd_autotools@ @bd_ant@
++ @bd_gcc@
++ @bd_bootstrap@
++ @bd_openjdk@
++ @bd_zero@ @bd_shark@
++ @bd_syslibs@ @bd_pulsejava@ @bd_systemtap@
++ @bd_nss@
++ @bd_cross@
++Standards-Version: 4.3.0
++Homepage: http://openjdk.java.net/
++Vcs-Bzr: http://bazaar.launchpad.net/~openjdk/openjdk/openjdk8
++Vcs-Browser: https://code.launchpad.net/~openjdk/openjdk/openjdk8
++
++Package: @basename@-jdk-headless
++Architecture: @any_archs@
++Multi-Arch: same
++Pre-Depends: ${dpkg:Depends}
++Depends: @basename@-jre-headless (= ${binary:Version}),
++ ${shlibs:Depends}, ${misc:Depends}
++Suggests: @basename@-demo, @basename@-source
++Provides: java-sdk-headless, java2-sdk-headless,
++ java5-sdk-headless, java6-sdk-headless,
++ java7-sdk-headless, java8-sdk-headless,
++Replaces: @basename@-jdk (<< 8u72-b15-4),
++Description: OpenJDK Development Kit (JDK) (headless)
++ OpenJDK is a development environment for building applications,
++ applets, and components using the Java programming language.
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: @basename@-jre-headless
++Architecture: @any_archs@
++Multi-Arch: same
++Pre-Depends: ${dpkg:Depends}
++Depends: ${jredefault:Depends}, ${cacert:Depends},
++ ${tzdata:Depends}, ${jcommon:Depends}, ${dlopenhl:Depends},
++ ${mountpoint:Depends},
++ ${shlibs:Depends}, ${misc:Depends}
++Recommends: ${dlopenhl:Recommends}
++Suggests: libnss-mdns,
++ @core_fonts@,
++ @cjk_fonts@
++Provides: java2-runtime-headless,
++ java5-runtime-headless, java6-runtime-headless,
++ java7-runtime-headless, java8-runtime-headless,
++ ${defaultvm:Provides}, ${jvm:Provides}
++Breaks: oracle-java8-installer (<< 8u77+8u77arm-1),
++ ${jrehl:Breaks}
++Description: OpenJDK Java runtime, using ${vm:Name} (headless)
++ Minimal Java runtime - needed for executing non GUI Java programs,
++ using ${vm:Name}.
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: @basename@-jdk
++Architecture: @any_archs@
++Multi-Arch: same
++Pre-Depends: ${dpkg:Depends}
++Depends: @basename@-jre (= ${binary:Version}),
++ @basename@-jdk-headless (= ${binary:Version}),
++ ${shlibs:Depends}, ${misc:Depends}
++Recommends: libxt-dev
++Suggests: @basename@-demo, @basename@-source, visualvm
++Provides: java-sdk, java2-sdk, java5-sdk, java6-sdk,
++ java7-sdk, java8-sdk, java-compiler
++Description: OpenJDK Development Kit (JDK)
++ OpenJDK is a development environment for building applications,
++ applets, and components using the Java programming language.
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: @basename@-jre
++Architecture: @any_archs@
++Multi-Arch: same
++Pre-Depends: ${dpkg:Depends}
++Depends: @basename@-jre-headless (= ${binary:Version}),
++ ${xandsound:Depends},
++ ${dlopenjre:Depends}, ${dep:bridge},
++ ${shlibs:Depends}, ${misc:Depends}
++Recommends: ${dlopenjre:Recommends}, @core_fonts@
++Suggests: icedtea-8-plugin, ${pkg:pulseaudio}
++Replaces: @basename@-jre-headless (<< 8u20~b20-3)
++Provides: java2-runtime,
++ java5-runtime, java6-runtime,
++ java7-runtime, java8-runtime
++Description: OpenJDK Java runtime, using ${vm:Name}
++ Full Java runtime environment - needed for executing Java GUI and Webstart
++ programs, using ${vm:Name}.
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: @basename@-demo
++Architecture: @any_archs@
++Priority: optional
++Pre-Depends: ${dpkg:Depends}
++Depends: @basename@-jre (= ${binary:Version}),
++ ${shlibs:Depends}, ${misc:Depends}
++Description: Java runtime based on OpenJDK (demos and examples)
++ OpenJDK Java runtime
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: @basename@-source
++Architecture: all
++Priority: optional
++Pre-Depends: ${dpkg:Depends}
++Depends: @basename@-jre (>= ${source:Version}),
++ @basename@-jdk (>= ${binary:Version}),
++ ${misc:Depends}
++Replaces: openjdk-8-jdk (<< 8u20~b26-1~)
++Description: OpenJDK Development Kit (JDK) source files
++ OpenJDK is a development environment for building applications,
++ applets, and components using the Java programming language.
++ .
++ This package contains the Java programming language source files
++ (src.zip) for all classes that make up the Java core API.
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: @basename@-doc
++Section: doc
++Pre-Depends: ${dpkg:Depends}
++Architecture: all
++Priority: optional
++Depends: ${misc:Depends}
++Suggests: @basename@-jdk
++Description: OpenJDK Development Kit (JDK) documentation
++ OpenJDK is a development environment for building applications,
++ applets, and components using the Java programming language.
++ .
++ This package contains the API documentation.
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
++
++Package: @basename@-dbg
++Architecture: @any_archs@
++Multi-Arch: same
++Priority: optional
++Section: debug
++Pre-Depends: ${dpkg:Depends}
++Depends: @basename@-jre-headless (= ${binary:Version}),
++ ${misc:Depends}
++Recommends: @basename@-jre (= ${binary:Version})
++Suggests: @basename@-jdk (= ${binary:Version})
++Description: Java runtime based on OpenJDK (debugging symbols)
++ OpenJDK is a development environment for building applications,
++ applets, and components using the Java programming language.
++ .
++ This package contains the debugging symbols.
++ .
++ The packages are built using the IcedTea build support and patches
++ from the IcedTea project.
--- /dev/null
--- /dev/null
++
++Package: openjdk-8-jre-jamvm
++Architecture: amd64 i386
++Multi-Arch: same
++Priority: extra
++Pre-Depends: ${dpkg:Depends}
++Depends: @basename@-jre-headless (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
++Description: Transitional package for obsolete JamVM for OpenJDK
++ JamVM support was removed for recent versions of OpenJDK 8.
++ .
++ This is a transitional package which can be safely removed.
++
--- /dev/null
--- /dev/null
++
++Package: @basename@-jre-zero
++Architecture: @altzero_archs@
++Multi-Arch: same
++Priority: optional
++Pre-Depends: ${dpkg:Depends}
++Depends: @basename@-jre-headless (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
++Provides: ${zerovm:Provides}
++Description: Alternative JVM for OpenJDK, using Zero/Shark
++ The package provides an alternative runtime using the Zero VM and the
++ Shark Just In Time Compiler (JIT). Built on architectures in addition
++ to the Hotspot VM as a debugging aid for those architectures which don't
++ have a Hotspot VM.
++ .
++ The VM is started with the option `-zero'. See the README.Debian for details.
--- /dev/null
--- /dev/null
++This package was debianized by Matthias Klose <doko@ubuntu.com> on
++Wed, 08 Aug 2007 15:55:39 +0200.
++
++It was downloaded from
++ http://download.java.net/openjdk/jdk7/
++ http://ftp.gnome.org/pub/GNOME/sources/java-access-bridge/
++
++------------------------------------------------------------------------------
++Upstream Authors:
++
++OpenJDK:
++ Sun Microsystems, Inc.
++ Oracle and/or its affiliates.
++
++IcedTea Sound (see AUTHORS for a current list):
++ Andrew John Hughes <gnu_andrew@member.fsf.org, gnu.andrew@redhat.com>
++ Ioana Ivan <iivan@redhat.com>
++ Matthias Klose <doko@ubuntu.com>
++ Denis Lila <dlila@redhat.com>
++ Omair Majid <omajid@redhat.com>
++ Xerxes Rånby <xerxes@zafena.se>
++ Marc Schoenefeld <mschoene@redhat.com>
++ Joshua Sumali <jsumali@redhat.com>
++ Jon VanAlten <jon.vanalten@redhat.com>
++
++Java Access Bridge:
++ Bill Haneman <bill.haneman@sun.com>
++ Louise Miller
++ Gergõ Érdi <cactus@cactus.rulez.org>
++ Laszlo (Laca) Peter <laszlo.peter@sun.com>
++ Jeff Cai<jeff.cai@sun.com>
++ George Kraft IV <gk4@us.ibm.com>
++ Padraig O'Briain <padraig.obriain@sun.com>
++ Darren Kenny <darren.kenny@sun.com>
++
++Packaging:
++ Matthias Klose
++
++------------------------------------------------------------------------------
++Copyright:
++
++OpenJDK:
++ Copyright © 1996-2007 Sun Microsystems, Inc.
++ Copyright © 1996-2014 Oracle and/or its affiliates.
++ For third party copyrights see below (copies from the third party readme).
++ Portions Copyright © 1993-2014 IBM Corp.
++ Portions Copyright © 1997 Eastman Kodak Company.
++ Portions Copyright © 1999-2005 The Apache Software Foundation.
++
++IcedTea Sound:
++ Portions Copyright © 2008-2014 Red Hat, Inc.
++
++Java Access Bridge:
++ Portions Copyright © 2002-2007 Bill Haneman <bill.haneman@sun.com>
++ Portions Copyright © 2002-2007 Louise Miller
++ Portions Copyright © 2002-2007 Gergõ Érdi <cactus@cactus.rulez.org>
++ Portions Copyright © 2002-2007 Laszlo (Laca) Peter <laszlo.peter@sun.com>
++ Portions Copyright © 2002-2007 Jeff Cai<jeff.cai@sun.com>
++ Portions Copyright © 2002-2007 George Kraft IV <gk4@us.ibm.com>
++ Portions Copyright © 2002-2007 Padraig O'Briain <padraig.obriain@sun.com>
++ Portions Copyright © 2002-2007 Darren Kenny <darren.kenny@sun.com>
++
++Packaging:
++ Copyright © 2007-2014 Canonical Ltd.
++
++------------------------------------------------------------------------------
++License:
++
++NOTE: the combined work which includes the upstream components below
++carries forward the OpenJDK Assembly Exception (text included below).
++
++Packaging:
++ Permission is hereby granted, free of charge, to any person obtaining
++ a copy of this software and associated documentation files (the
++ "Software"), to deal in the Software without restriction, including
++ without limitation the rights to use, copy, modify, merge, publish,
++ distribute, sublicense, and/or sell copies of the Software, and to
++ permit persons to whom the Software is furnished to do so, subject to
++ the following conditions:
++
++ The above copyright notice and this permission notice shall be
++ included in all copies or substantial portions of the Software.
++
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++IcedTea Sound:
++ IcedTea is licensed under the GPL v2. See `/usr/share/common-licenses/GPL-2'.
++ The exception is: "CLASSPATH" EXCEPTION TO THE GPL.
++
++ The sound files (pulseaudio/testsounds/*.wav) were taken from the KDE Project
++ (www.kde.org). A copy of them can be obtained from
++ http://websvn.kde.org/branches/KDE/4.0/kdeartwork/sounds/ . They are licensed
++ by the copyright holders as GPLv2.
++
++OpenJDK:
++ OpenJDK is licensed under the GPL v2 with exceptions,
++ see `/usr/share/common-licenses/GPL-2'.
++ The exceptions are:
++ - "CLASSPATH" EXCEPTION TO THE GPL
++ - OPENJDK ASSEMBLY EXCEPTION
++ Various third party code in OpenJDK is licensed under different licenses.
++ See below (THIRD_PARTY_README).
++
++Java Access Bridge:
++ Java Access Bridge is licensed under the LGPL v2.
++ See `/usr/share/common-licenses/LGPL-2'.
++
++A Note About License Headers
++----------------------------
++
++Some sources downloaded from openjdk.java.net do not display the GPL
++license header. Instances are:
++
++ - The files in openjdk/j2se/src/share/classes/javax/xml/stream/ seem to
++ comprise the BEA-StAX source code
++
++ http://ftpna2.bea.com/pub/downloads/jsr173.jar
++
++ with some Sun-specific modifications. We're assuming that Sun is
++ bundling BEA-StAX under the terms of the Apache License 2.0 and
++ that the modifications are owned by Sun.
++
++ - We are assuming that these files are owned by Sun:
++ openjdk/j2se/src/share/classes/**/resources/*.properties
++
++The downloaded sources include a script that inserts proprietary
++license headers into the source files it generates. The script
++itself is GPL'd so we patched them to emit the GPL header. The
++file is:
++ openjdk/j2se/make/java/nio/genExceptions.sh
++
++------------------------------------------------------------------------------
++"CLASSPATH" EXCEPTION TO THE GPL
++
++Certain source files distributed by Sun Microsystems, Inc. are subject to
++the following clarification and special exception to the GPL, but only where
++Sun has expressly included in the particular source file's header the words
++"Sun designates this particular file as subject to the "Classpath" exception
++as provided by Sun in the LICENSE file that accompanied this code."
++
++ Linking this library statically or dynamically with other modules is making
++ a combined work based on this library. Thus, the terms and conditions of
++ the GNU General Public License cover the whole combination.
++
++ As a special exception, the copyright holders of this library give you
++ permission to link this library with independent modules to produce an
++ executable, regardless of the license terms of these independent modules,
++ and to copy and distribute the resulting executable under terms of your
++ choice, provided that you also meet, for each linked independent module,
++ the terms and conditions of the license of that module. An independent
++ module is a module which is not derived from or based on this library. If
++ you modify this library, you may extend this exception to your version of
++ the library, but you are not obligated to do so. If you do not wish to do
++ so, delete this exception statement from your version.
++
++------------------------------------------------------------------------------
++OPENJDK ASSEMBLY EXCEPTION
++
++The OpenJDK source code made available by Sun at openjdk.java.net and
++openjdk.dev.java.net ("OpenJDK Code") is distributed under the terms of the
++GNU General Public License <http://www.gnu.org/copyleft/gpl.html> version 2
++only ("GPL2"), with the following clarification and special exception.
++
++ Linking this OpenJDK Code statically or dynamically with other code
++ is making a combined work based on this library. Thus, the terms
++ and conditions of GPL2 cover the whole combination.
++
++ As a special exception, Sun gives you permission to link this
++ OpenJDK Code with certain code licensed by Sun as indicated at
++ http://openjdk.java.net/legal/exception-modules-2007-05-08.html
++ ("Designated Exception Modules") to produce an executable,
++ regardless of the license terms of the Designated Exception Modules,
++ and to copy and distribute the resulting executable under GPL2,
++ provided that the Designated Exception Modules continue to be
++ governed by the licenses under which they were offered by Sun.
++
++As such, it allows licensees and sublicensees of Sun's GPL2 OpenJDK Code to
++build an executable that includes those portions of necessary code that Sun
++could not provide under GPL2 (or that Sun has provided under GPL2 with the
++Classpath exception). If you modify or add to the OpenJDK code, that new
++GPL2 code may still be combined with Designated Exception Modules if the
++new code is made subject to this exception by its copyright holder.
++
++------------------------------------------------------------------------------
++OpenJDK Trademark Notice
++Version 1.1, 2008/3/10
++
++OpenJDK (the "Name") is a trademark of Sun Microsystems, Inc. (the "Owner").
++Owner permits any person obtaining a copy of this software (the "Software")
++which is based on original software retrieved from one of the following
++websites: http://download.java.net/openjdk, http://hg.openjdk.java.net/jdk6,
++or http://openjdk.java.net (each a "Website", with the original software made
++available by the Owner on a Website being known as the "Website Software") to
++use the Name in package names and version strings of the Software subject to
++the following conditions:
++
++ - The Software is a substantially complete implementation of the OpenJDK
++ development kit or runtime environment code made available by Owner on a
++ Website, and the vast majority of the Software code is identical to the
++ upstream Website Software;
++
++ - No permission is hereby granted to use the Name in any other manner,
++ unless such use constitutes "fair use."
++
++ - The Owner makes no warranties of any kind respecting the Name and all
++ representations and warranties, including any implied warranty of
++ merchantability, fitness for a particular purpose or non-infringement
++ are hereby disclaimed; and
++
++ - This notice and the following legend are included in all copies of the
++ Software or portions of it:
++
++ OpenJDK is a trademark or registered trademark of Sun Microsystems,
++ Inc. in the United States and other countries.
++
++The Name may also be used in connection with descriptions of the Software that
++constitute "fair use," such as "derived from the OpenJDK code base" or "based
++on the OpenJDK source code."
++
++Owner intends to revise this Notice as necessary in order to meet the needs of
++the OpenJDK Community. Please send questions or comments about this Notice to
++Sun Microsystems at openjdk-tm@sun.com. Revisions to this Notice will be
++announced on the public mailing list announce@openjdk.java.net, to which you
++may subscribe by visiting http://mail.openjdk.java.net. The latest version of
++this Notice may be found at http://openjdk.java.net/legal.
++
++------------------------------------------------------------------------------
++
++The contents of the jdk/src/share/native/sun/security/ec/impl/ directory are
++licensed under the LGPL-2.1. See `/usr/share/common-licenses/LGPL-2-1'.
++
++------------------------------------------------------------------------------
++The following licenses for third party code are taken from
++openjdk/THIRD_PARTY_README
++------------------------------------------------------------------------------
++
++DO NOT TRANSLATE OR LOCALIZE.
++-----------------------------
++
++%% This notice is provided with respect to ASM Bytecode Manipulation
++Framework v5.0, which may be included with JRE 8, and JDK 8, and
++OpenJDK 8.
++
++--- begin of LICENSE ---
++
++Copyright (c) 2000-2011 France Télécom
++All rights reserved.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions
++are met:
++
++1. Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++
++2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++
++3. Neither the name of the copyright holders nor the names of its
++ contributors may be used to endorse or promote products derived from
++ this software without specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
++AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
++LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
++CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
++SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
++INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
++CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
++THE POSSIBILITY OF SUCH DAMAGE.
++
++--- end of LICENSE ---
++
++--------------------------------------------------------------------------------
++
++%% This notice is provided with respect to BSDiff v4.3, which may be
++included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++Copyright 2003-2005 Colin Percival
++All rights reserved
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted providing that the following conditions
++are met:
++1. Redistributions of source code must retain the above copyright
++notice, this list of conditions and the following disclaimer.
++2. Redistributions in binary form must reproduce the above copyright
++notice, this list of conditions and the following disclaimer in the
++documentation and/or other materials provided with the distribution.
++
++THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
++IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
++DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
++IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
++POSSIBILITY OF SUCH DAMAGE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to CodeViewer 1.0, which may be
++included with JDK 8.
++
++--- begin of LICENSE ---
++
++Copyright 1999 by CoolServlets.com.
++
++Any errors or suggested improvements to this class can be reported as
++instructed on CoolServlets.com. We hope you enjoy this program... your
++comments will encourage further development! This software is distributed
++under the terms of the BSD License. Redistribution and use in source and
++binary forms, with or without modification, are permitted provided that the
++following conditions are met:
++
++1. Redistributions of source code must retain the above copyright notice, this
++ list of conditions and the following disclaimer.
++
++2. Redistributions in binary form must reproduce the above copyright notice,
++ this list of conditions and the following disclaimer in the documentation
++ and/or other materials provided with the distribution.
++
++Neither name of CoolServlets.com nor the names of its contributors may be
++used to endorse or promote products derived from this software without
++specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY COOLSERVLETS.COM AND CONTRIBUTORS ``AS IS'' AND
++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
++DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
++
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Cryptix AES 3.2.0, which may be
++included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++Cryptix General License
++
++Copyright (c) 1995-2005 The Cryptix Foundation Limited.
++All rights reserved.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are
++met:
++
++ 1. Redistributions of source code must retain the copyright notice,
++ this list of conditions and the following disclaimer.
++
++ 2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in
++ the documentation and/or other materials provided with the
++ distribution.
++
++THIS SOFTWARE IS PROVIDED BY THE CRYPTIX FOUNDATION LIMITED AND
++CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
++INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
++IN NO EVENT SHALL THE CRYPTIX FOUNDATION LIMITED OR CONTRIBUTORS BE
++LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
++CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
++SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
++BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
++WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
++OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
++IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to CUP Parser Generator for
++Java 0.10k, which may be included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian
++
++Permission to use, copy, modify, and distribute this software and its
++documentation for any purpose and without fee is hereby granted, provided
++that the above copyright notice appear in all copies and that both the
++copyright notice and this permission notice and warranty disclaimer appear in
++supporting documentation, and that the names of the authors or their
++employers not be used in advertising or publicity pertaining to distribution of
++the software without specific, written prior permission.
++
++The authors and their employers disclaim all warranties with regard to
++this software, including all implied warranties of merchantability and fitness.
++In no event shall the authors or their employers be liable for 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 this software.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Document Object Model (DOM) Level 2
++& 3, which may be included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++W3C SOFTWARE NOTICE AND LICENSE
++
++http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
++
++This work (and included software, documentation such as READMEs, or other
++related items) is being provided by the copyright holders under the following
++license. By obtaining, using and/or copying this work, you (the licensee)
++agree that you have read, understood, and will comply with the following terms
++and conditions.
++
++Permission to copy, modify, and distribute this software and its
++documentation, with or without modification, for any purpose and without fee
++or royalty is hereby granted, provided that you include the following on ALL
++copies of the software and documentation or portions thereof, including
++modifications:
++
++ 1.The full text of this NOTICE in a location viewable to users of the
++ redistributed or derivative work.
++
++ 2.Any pre-existing intellectual property disclaimers, notices, or terms and
++ conditions. If none exist, the W3C Software Short Notice should be included
++ (hypertext is preferred, text is permitted) within the body of any
++ redistributed or derivative code.
++
++ 3.Notice of any changes or modifications to the files, including the date
++ changes were made. (We recommend you provide URIs to the location from
++ which the code is derived.)
++
++THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS
++MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
++LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
++PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY
++THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
++
++COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL
++OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
++DOCUMENTATION. The name and trademarks of copyright holders may NOT be used
++in advertising or publicity pertaining to the software without specific,
++written prior permission. Title to copyright in this software and any
++associated documentation will at all times remain with copyright holders.
++
++____________________________________
++
++This formulation of W3C's notice and license became active on December 31
++2002. This version removes the copyright ownership notice such that this
++license can be used with materials other than those owned by the W3C, reflects
++that ERCIM is now a host of the W3C, includes references to this specific
++dated version of the license, and removes the ambiguous grant of "use".
++Otherwise, this version is the same as the previous version and is written so
++as to preserve the Free Software Foundation's assessment of GPL compatibility
++and OSI's certification under the Open Source Definition. Please see our
++Copyright FAQ for common questions about using materials from our site,
++including specific terms and conditions for packages like libwww, Amaya, and
++Jigsaw. Other questions about this notice can be directed to
++site-policy@w3.org.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Dynalink v0.5, which may be
++included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++Copyright (c) 2009-2013, Attila Szegedi
++
++All rights reserved.Redistribution and use in source and binary forms, with or
++without modification, are permitted provided that the following conditions are
++met:* Redistributions of source code must retain the above copyright notice,
++this list of conditions and the following disclaimer. * Redistributions in
++binary form must reproduce the above copyright notice, this list of
++conditions and the following disclaimer in the documentation and/or other
++materials provided with the distribution. * Neither the name of Attila
++Szegedi nor the names of its contributors may be used to endorse or promote
++products derived from this software without specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"AND
++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
++FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
++CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
++OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF SUCH DAMAGE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Elliptic Curve Cryptography, which
++may be included with JRE 8, JDK 8, and OpenJDK 8.
++
++You are receiving a copy of the Elliptic Curve Cryptography library in source
++form with the JDK 8 and OpenJDK 8 source distributions, and as object code in
++the JRE 8 & JDK 8 runtimes.
++
++In the case of the JRE 8 & JDK 8 runtimes, the terms of the Oracle license do
++NOT apply to the Elliptic Curve Cryptography library; it is licensed under the
++following license, separately from Oracle's JDK & JRE. If you do not wish to
++install the Elliptic Curve Cryptography library, you may delete the library
++named libsunec.so (on Solaris and Linux systems) or sunec.dll (on Windows
++systems) from the JRE bin directory reserved for native libraries.
++
++
++--- begin of LICENSE ---
++
++ GNU LESSER GENERAL PUBLIC LICENSE
++ Version 2.1, February 1999
++
++ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ Everyone is permitted to copy and distribute verbatim copies
++ of this license document, but changing it is not allowed.
++
++[This is the first released version of the Lesser GPL. It also counts
++ as the successor of the GNU Library Public License, version 2, hence
++ the version number 2.1.]
++
++ Preamble
++
++ The licenses for most software are designed to take away your
++freedom to share and change it. By contrast, the GNU General Public
++Licenses are intended to guarantee your freedom to share and change
++free software--to make sure the software is free for all its users.
++
++ This license, the Lesser General Public License, applies to some
++specially designated software packages--typically libraries--of the
++Free Software Foundation and other authors who decide to use it. You
++can use it too, but we suggest you first think carefully about whether
++this license or the ordinary General Public License is the better
++strategy to use in any particular case, based on the explanations below.
++
++ When we speak of free software, we are referring to freedom of use,
++not price. Our General Public Licenses are designed to make sure that
++you have the freedom to distribute copies of free software (and charge
++for this service if you wish); that you receive source code or can get
++it if you want it; that you can change the software and use pieces of
++it in new free programs; and that you are informed that you can do
++these things.
++
++ To protect your rights, we need to make restrictions that forbid
++distributors to deny you these rights or to ask you to surrender these
++rights. These restrictions translate to certain responsibilities for
++you if you distribute copies of the library or if you modify it.
++
++ For example, if you distribute copies of the library, whether gratis
++or for a fee, you must give the recipients all the rights that we gave
++you. You must make sure that they, too, receive or can get the source
++code. If you link other code with the library, you must provide
++complete object files to the recipients, so that they can relink them
++with the library after making changes to the library and recompiling
++it. And you must show them these terms so they know their rights.
++
++ We protect your rights with a two-step method: (1) we copyright the
++library, and (2) we offer you this license, which gives you legal
++permission to copy, distribute and/or modify the library.
++
++ To protect each distributor, we want to make it very clear that
++there is no warranty for the free library. Also, if the library is
++modified by someone else and passed on, the recipients should know
++that what they have is not the original version, so that the original
++author's reputation will not be affected by problems that might be
++introduced by others.
++\f
++ Finally, software patents pose a constant threat to the existence of
++any free program. We wish to make sure that a company cannot
++effectively restrict the users of a free program by obtaining a
++restrictive license from a patent holder. Therefore, we insist that
++any patent license obtained for a version of the library must be
++consistent with the full freedom of use specified in this license.
++
++ Most GNU software, including some libraries, is covered by the
++ordinary GNU General Public License. This license, the GNU Lesser
++General Public License, applies to certain designated libraries, and
++is quite different from the ordinary General Public License. We use
++this license for certain libraries in order to permit linking those
++libraries into non-free programs.
++
++ When a program is linked with a library, whether statically or using
++a shared library, the combination of the two is legally speaking a
++combined work, a derivative of the original library. The ordinary
++General Public License therefore permits such linking only if the
++entire combination fits its criteria of freedom. The Lesser General
++Public License permits more lax criteria for linking other code with
++the library.
++
++ We call this license the "Lesser" General Public License because it
++does Less to protect the user's freedom than the ordinary General
++Public License. It also provides other free software developers Less
++of an advantage over competing non-free programs. These disadvantages
++are the reason we use the ordinary General Public License for many
++libraries. However, the Lesser license provides advantages in certain
++special circumstances.
++
++ For example, on rare occasions, there may be a special need to
++encourage the widest possible use of a certain library, so that it becomes
++a de-facto standard. To achieve this, non-free programs must be
++allowed to use the library. A more frequent case is that a free
++library does the same job as widely used non-free libraries. In this
++case, there is little to gain by limiting the free library to free
++software only, so we use the Lesser General Public License.
++
++ In other cases, permission to use a particular library in non-free
++programs enables a greater number of people to use a large body of
++free software. For example, permission to use the GNU C Library in
++non-free programs enables many more people to use the whole GNU
++operating system, as well as its variant, the GNU/Linux operating
++system.
++
++ Although the Lesser General Public License is Less protective of the
++users' freedom, it does ensure that the user of a program that is
++linked with the Library has the freedom and the wherewithal to run
++that program using a modified version of the Library.
++
++ The precise terms and conditions for copying, distribution and
++modification follow. Pay close attention to the difference between a
++"work based on the library" and a "work that uses the library". The
++former contains code derived from the library, whereas the latter must
++be combined with the library in order to run.
++\f
++ GNU LESSER GENERAL PUBLIC LICENSE
++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
++
++ 0. This License Agreement applies to any software library or other
++program which contains a notice placed by the copyright holder or
++other authorized party saying it may be distributed under the terms of
++this Lesser General Public License (also called "this License").
++Each licensee is addressed as "you".
++
++ A "library" means a collection of software functions and/or data
++prepared so as to be conveniently linked with application programs
++(which use some of those functions and data) to form executables.
++
++ The "Library", below, refers to any such software library or work
++which has been distributed under these terms. A "work based on the
++Library" means either the Library or any derivative work under
++copyright law: that is to say, a work containing the Library or a
++portion of it, either verbatim or with modifications and/or translated
++straightforwardly into another language. (Hereinafter, translation is
++included without limitation in the term "modification".)
++
++ "Source code" for a work means the preferred form of the work for
++making modifications to it. For a library, complete source code means
++all the source code for all modules it contains, plus any associated
++interface definition files, plus the scripts used to control compilation
++and installation of the library.
++
++ Activities other than copying, distribution and modification are not
++covered by this License; they are outside its scope. The act of
++running a program using the Library is not restricted, and output from
++such a program is covered only if its contents constitute a work based
++on the Library (independent of the use of the Library in a tool for
++writing it). Whether that is true depends on what the Library does
++and what the program that uses the Library does.
++
++ 1. You may copy and distribute verbatim copies of the Library's
++complete source code as you receive it, in any medium, provided that
++you conspicuously and appropriately publish on each copy an
++appropriate copyright notice and disclaimer of warranty; keep intact
++all the notices that refer to this License and to the absence of any
++warranty; and distribute a copy of this License along with the
++Library.
++
++ You may charge a fee for the physical act of transferring a copy,
++and you may at your option offer warranty protection in exchange for a
++fee.
++\f
++ 2. You may modify your copy or copies of the Library or any portion
++of it, thus forming a work based on the Library, and copy and
++distribute such modifications or work under the terms of Section 1
++above, provided that you also meet all of these conditions:
++
++ a) The modified work must itself be a software library.
++
++ b) You must cause the files modified to carry prominent notices
++ stating that you changed the files and the date of any change.
++
++ c) You must cause the whole of the work to be licensed at no
++ charge to all third parties under the terms of this License.
++
++ d) If a facility in the modified Library refers to a function or a
++ table of data to be supplied by an application program that uses
++ the facility, other than as an argument passed when the facility
++ is invoked, then you must make a good faith effort to ensure that,
++ in the event an application does not supply such function or
++ table, the facility still operates, and performs whatever part of
++ its purpose remains meaningful.
++
++ (For example, a function in a library to compute square roots has
++ a purpose that is entirely well-defined independent of the
++ application. Therefore, Subsection 2d requires that any
++ application-supplied function or table used by this function must
++ be optional: if the application does not supply it, the square
++ root function must still compute square roots.)
++
++These requirements apply to the modified work as a whole. If
++identifiable sections of that work are not derived from the Library,
++and can be reasonably considered independent and separate works in
++themselves, then this License, and its terms, do not apply to those
++sections when you distribute them as separate works. But when you
++distribute the same sections as part of a whole which is a work based
++on the Library, the distribution of the whole must be on the terms of
++this License, whose permissions for other licensees extend to the
++entire whole, and thus to each and every part regardless of who wrote
++it.
++
++Thus, it is not the intent of this section to claim rights or contest
++your rights to work written entirely by you; rather, the intent is to
++exercise the right to control the distribution of derivative or
++collective works based on the Library.
++
++In addition, mere aggregation of another work not based on the Library
++with the Library (or with a work based on the Library) on a volume of
++a storage or distribution medium does not bring the other work under
++the scope of this License.
++
++ 3. You may opt to apply the terms of the ordinary GNU General Public
++License instead of this License to a given copy of the Library. To do
++this, you must alter all the notices that refer to this License, so
++that they refer to the ordinary GNU General Public License, version 2,
++instead of to this License. (If a newer version than version 2 of the
++ordinary GNU General Public License has appeared, then you can specify
++that version instead if you wish.) Do not make any other change in
++these notices.
++\f
++ Once this change is made in a given copy, it is irreversible for
++that copy, so the ordinary GNU General Public License applies to all
++subsequent copies and derivative works made from that copy.
++
++ This option is useful when you wish to copy part of the code of
++the Library into a program that is not a library.
++
++ 4. You may copy and distribute the Library (or a portion or
++derivative of it, under Section 2) in object code or executable form
++under the terms of Sections 1 and 2 above provided that you accompany
++it with the complete corresponding machine-readable source code, which
++must be distributed under the terms of Sections 1 and 2 above on a
++medium customarily used for software interchange.
++
++ If distribution of object code is made by offering access to copy
++from a designated place, then offering equivalent access to copy the
++source code from the same place satisfies the requirement to
++distribute the source code, even though third parties are not
++compelled to copy the source along with the object code.
++
++ 5. A program that contains no derivative of any portion of the
++Library, but is designed to work with the Library by being compiled or
++linked with it, is called a "work that uses the Library". Such a
++work, in isolation, is not a derivative work of the Library, and
++therefore falls outside the scope of this License.
++
++ However, linking a "work that uses the Library" with the Library
++creates an executable that is a derivative of the Library (because it
++contains portions of the Library), rather than a "work that uses the
++library". The executable is therefore covered by this License.
++Section 6 states terms for distribution of such executables.
++
++ When a "work that uses the Library" uses material from a header file
++that is part of the Library, the object code for the work may be a
++derivative work of the Library even though the source code is not.
++Whether this is true is especially significant if the work can be
++linked without the Library, or if the work is itself a library. The
++threshold for this to be true is not precisely defined by law.
++
++ If such an object file uses only numerical parameters, data
++structure layouts and accessors, and small macros and small inline
++functions (ten lines or less in length), then the use of the object
++file is unrestricted, regardless of whether it is legally a derivative
++work. (Executables containing this object code plus portions of the
++Library will still fall under Section 6.)
++
++ Otherwise, if the work is a derivative of the Library, you may
++distribute the object code for the work under the terms of Section 6.
++Any executables containing that work also fall under Section 6,
++whether or not they are linked directly with the Library itself.
++\f
++ 6. As an exception to the Sections above, you may also combine or
++link a "work that uses the Library" with the Library to produce a
++work containing portions of the Library, and distribute that work
++under terms of your choice, provided that the terms permit
++modification of the work for the customer's own use and reverse
++engineering for debugging such modifications.
++
++ You must give prominent notice with each copy of the work that the
++Library is used in it and that the Library and its use are covered by
++this License. You must supply a copy of this License. If the work
++during execution displays copyright notices, you must include the
++copyright notice for the Library among them, as well as a reference
++directing the user to the copy of this License. Also, you must do one
++of these things:
++
++ a) Accompany the work with the complete corresponding
++ machine-readable source code for the Library including whatever
++ changes were used in the work (which must be distributed under
++ Sections 1 and 2 above); and, if the work is an executable linked
++ with the Library, with the complete machine-readable "work that
++ uses the Library", as object code and/or source code, so that the
++ user can modify the Library and then relink to produce a modified
++ executable containing the modified Library. (It is understood
++ that the user who changes the contents of definitions files in the
++ Library will not necessarily be able to recompile the application
++ to use the modified definitions.)
++
++ b) Use a suitable shared library mechanism for linking with the
++ Library. A suitable mechanism is one that (1) uses at run time a
++ copy of the library already present on the user's computer system,
++ rather than copying library functions into the executable, and (2)
++ will operate properly with a modified version of the library, if
++ the user installs one, as long as the modified version is
++ interface-compatible with the version that the work was made with.
++
++ c) Accompany the work with a written offer, valid for at
++ least three years, to give the same user the materials
++ specified in Subsection 6a, above, for a charge no more
++ than the cost of performing this distribution.
++
++ d) If distribution of the work is made by offering access to copy
++ from a designated place, offer equivalent access to copy the above
++ specified materials from the same place.
++
++ e) Verify that the user has already received a copy of these
++ materials or that you have already sent this user a copy.
++
++ For an executable, the required form of the "work that uses the
++Library" must include any data and utility programs needed for
++reproducing the executable from it. However, as a special exception,
++the materials to be distributed need not include anything that is
++normally distributed (in either source or binary form) with the major
++components (compiler, kernel, and so on) of the operating system on
++which the executable runs, unless that component itself accompanies
++the executable.
++
++ It may happen that this requirement contradicts the license
++restrictions of other proprietary libraries that do not normally
++accompany the operating system. Such a contradiction means you cannot
++use both them and the Library together in an executable that you
++distribute.
++\f
++ 7. You may place library facilities that are a work based on the
++Library side-by-side in a single library together with other library
++facilities not covered by this License, and distribute such a combined
++library, provided that the separate distribution of the work based on
++the Library and of the other library facilities is otherwise
++permitted, and provided that you do these two things:
++
++ a) Accompany the combined library with a copy of the same work
++ based on the Library, uncombined with any other library
++ facilities. This must be distributed under the terms of the
++ Sections above.
++
++ b) Give prominent notice with the combined library of the fact
++ that part of it is a work based on the Library, and explaining
++ where to find the accompanying uncombined form of the same work.
++
++ 8. You may not copy, modify, sublicense, link with, or distribute
++the Library except as expressly provided under this License. Any
++attempt otherwise to copy, modify, sublicense, link with, or
++distribute the Library is void, and will automatically terminate your
++rights under this License. However, parties who have received copies,
++or rights, from you under this License will not have their licenses
++terminated so long as such parties remain in full compliance.
++
++ 9. You are not required to accept this License, since you have not
++signed it. However, nothing else grants you permission to modify or
++distribute the Library or its derivative works. These actions are
++prohibited by law if you do not accept this License. Therefore, by
++modifying or distributing the Library (or any work based on the
++Library), you indicate your acceptance of this License to do so, and
++all its terms and conditions for copying, distributing or modifying
++the Library or works based on it.
++
++ 10. Each time you redistribute the Library (or any work based on the
++Library), the recipient automatically receives a license from the
++original licensor to copy, distribute, link with or modify the Library
++subject to these terms and conditions. You may not impose any further
++restrictions on the recipients' exercise of the rights granted herein.
++You are not responsible for enforcing compliance by third parties with
++this License.
++\f
++ 11. If, as a consequence of a court judgment or allegation of patent
++infringement or for any other reason (not limited to patent issues),
++conditions are imposed on you (whether by court order, agreement or
++otherwise) that contradict the conditions of this License, they do not
++excuse you from the conditions of this License. If you cannot
++distribute so as to satisfy simultaneously your obligations under this
++License and any other pertinent obligations, then as a consequence you
++may not distribute the Library at all. For example, if a patent
++license would not permit royalty-free redistribution of the Library by
++all those who receive copies directly or indirectly through you, then
++the only way you could satisfy both it and this License would be to
++refrain entirely from distribution of the Library.
++
++If any portion of this section is held invalid or unenforceable under any
++particular circumstance, the balance of the section is intended to apply,
++and the section as a whole is intended to apply in other circumstances.
++
++It is not the purpose of this section to induce you to infringe any
++patents or other property right claims or to contest validity of any
++such claims; this section has the sole purpose of protecting the
++integrity of the free software distribution system which is
++implemented by public license practices. Many people have made
++generous contributions to the wide range of software distributed
++through that system in reliance on consistent application of that
++system; it is up to the author/donor to decide if he or she is willing
++to distribute software through any other system and a licensee cannot
++impose that choice.
++
++This section is intended to make thoroughly clear what is believed to
++be a consequence of the rest of this License.
++
++ 12. If the distribution and/or use of the Library is restricted in
++certain countries either by patents or by copyrighted interfaces, the
++original copyright holder who places the Library under this License may add
++an explicit geographical distribution limitation excluding those countries,
++so that distribution is permitted only in or among countries not thus
++excluded. In such case, this License incorporates the limitation as if
++written in the body of this License.
++
++ 13. The Free Software Foundation may publish revised and/or new
++versions of the Lesser General Public License from time to time.
++Such new versions will be similar in spirit to the present version,
++but may differ in detail to address new problems or concerns.
++
++Each version is given a distinguishing version number. If the Library
++specifies a version number of this License which applies to it and
++"any later version", you have the option of following the terms and
++conditions either of that version or of any later version published by
++the Free Software Foundation. If the Library does not specify a
++license version number, you may choose any version ever published by
++the Free Software Foundation.
++\f
++ 14. If you wish to incorporate parts of the Library into other free
++programs whose distribution conditions are incompatible with these,
++write to the author to ask for permission. For software which is
++copyrighted by the Free Software Foundation, write to the Free
++Software Foundation; we sometimes make exceptions for this. Our
++decision will be guided by the two goals of preserving the free status
++of all derivatives of our free software and of promoting the sharing
++and reuse of software generally.
++
++ NO WARRANTY
++
++ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
++WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
++EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
++OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
++KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
++PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
++LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
++THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
++
++ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
++WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
++AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
++FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
++CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
++LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
++RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
++FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
++SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
++DAMAGES.
++
++ END OF TERMS AND CONDITIONS
++\f
++ How to Apply These Terms to Your New Libraries
++
++ If you develop a new library, and you want it to be of the greatest
++possible use to the public, we recommend making it free software that
++everyone can redistribute and change. You can do so by permitting
++redistribution under these terms (or, alternatively, under the terms of the
++ordinary General Public License).
++
++ To apply these terms, attach the following notices to the library. It is
++safest to attach them to the start of each source file to most effectively
++convey the exclusion of warranty; and each file should have at least the
++"copyright" line and a pointer to where the full notice is found.
++
++ <one line to give the library's name and a brief idea of what it does.>
++ Copyright (C) <year> <name of author>
++
++ This library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ This library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with this library; if not, write to the Free Software
++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++
++Also add information on how to contact you by electronic and paper mail.
++
++You should also get your employer (if you work as a programmer) or your
++school, if any, to sign a "copyright disclaimer" for the library, if
++necessary. Here is a sample; alter the names:
++
++ Yoyodyne, Inc., hereby disclaims all copyright interest in the
++ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
++
++ <signature of Ty Coon>, 1 April 1990
++ Ty Coon, President of Vice
++
++That's all there is to it!
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to ECMAScript Language
++Specification ECMA-262 Edition 5.1 which may be included with
++JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++Copyright notice
++Copyright © 2011 Ecma International
++Ecma International
++Rue du Rhone 114
++CH-1204 Geneva
++Tel: +41 22 849 6000
++Fax: +41 22 849 6001
++Web: http://www.ecma-international.org
++
++This document and possible translations of it may be copied and furnished to
++others, and derivative works that comment on or otherwise explain it or assist
++in its implementation may be prepared, copied, published, and distributed, in
++whole or in part, without restriction of any kind, provided that the above
++copyright notice and this section are included on all such copies and derivative
++works. However, this document itself may not be modified in any way, including
++by removing the copyright notice or references to Ecma International, except as
++needed for the purpose of developing any document or deliverable produced by
++Ecma International (in which case the rules applied to copyrights must be
++followed) or as required to translate it into languages other than English. The
++limited permissions granted above are perpetual and will not be revoked by Ecma
++International or its successors or assigns. This document and the information
++contained herein is provided on an "AS IS" basis and ECMA INTERNATIONAL
++DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
++WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP
++RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
++PURPOSE." Software License
++
++All Software contained in this document ("Software)" is protected by copyright
++and is being made available under the "BSD License", included below. This
++Software may be subject to third party rights (rights from parties other than
++Ecma International), including patent rights, and no licenses under such third
++party rights are granted under this license even if the third party concerned is
++a member of Ecma International. SEE THE ECMA CODE OF CONDUCT IN PATENT MATTERS
++AVAILABLE AT http://www.ecma-international.org/memento/codeofconduct.htm FOR
++INFORMATION REGARDING THE LICENSING OF PATENT CLAIMS THAT ARE REQUIRED TO
++IMPLEMENT ECMA INTERNATIONAL STANDARDS*. Redistribution and use in source and
++binary forms, with or without modification, are permitted provided that the
++following conditions are met:
++
++1. Redistributions of source code must retain the above copyright notice, this
++list of conditions and the following disclaimer.
++
++2. Redistributions in binary form must reproduce the above copyright notice,
++this list of conditions and the following disclaimer in the documentation and/or
++other materials provided with the distribution.
++
++3. Neither the name of the authors nor Ecma International may be used to endorse
++or promote products derived from this software without specific prior written
++permission.
++
++THIS SOFTWARE IS PROVIDED BY THE ECMA INTERNATIONAL "AS IS" AND ANY EXPRESS OR
++IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
++SHALL ECMA INTERNATIONAL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
++BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
++CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
++IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
++OF SUCH DAMAGE.
++--- end of LICENSE ---
++
++%% This notice is provided with respect to Dynalink library which is included
++with the Nashorn technology.
++
++--- begin of LICENSE ---
++Copyright (c) 2009-2013, Attila Szegedi
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are
++met:
++* Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++* Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++* Neither the name of the copyright holder nor the names of
++ contributors may be used to endorse or promote products derived from
++ this software without specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
++IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
++TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER
++BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
++CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
++SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
++BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
++WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
++OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
++ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++--- end of LICENSE ---
++
++%% This notice is provided with respect to Joni library which is included
++with the Nashorn technology.
++
++--- begin of LICENSE ---
++Permission is hereby granted, free of charge, to any person obtaining a copy of
++this software and associated documentation files (the "Software"), to deal in
++the Software without restriction, including without limitation the rights to
++use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
++of the Software, and to permit persons to whom the Software is furnished to do
++so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in all
++copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++SOFTWARE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to FontConfig 2.5, which may be
++included with JRE 8, JDK 8, and OpenJDK 8 source distributions on
++Linux and Solaris.
++
++--- begin of LICENSE ---
++
++Copyright © 2001,2003 Keith Packard
++
++Permission to use, copy, modify, distribute, and sell this software and its
++documentation for any purpose is hereby granted without fee, provided that the
++above copyright notice appear in all copies and that both that copyright
++notice and this permission notice appear in supporting documentation, and that
++the name of Keith Packard not be used in advertising or publicity pertaining
++to distribution of the software without specific, written prior permission.
++Keith Packard makes no representations about the suitability of this software
++for any purpose. It is provided "as is" without express or implied warranty.
++
++KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
++ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL KEITH
++PACKARD BE LIABLE FOR 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 THIS SOFTWARE.
++
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to IAIK PKCS#11 Wrapper,
++which may be included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++IAIK PKCS#11 Wrapper License
++
++Copyright (c) 2002 Graz University of Technology. All rights reserved.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++
++1. Redistributions of source code must retain the above copyright notice, this
++ list of conditions and the following disclaimer.
++
++2. Redistributions in binary form must reproduce the above copyright notice,
++ this list of conditions and the following disclaimer in the documentation
++ and/or other materials provided with the distribution.
++
++3. The end-user documentation included with the redistribution, if any, must
++ include the following acknowledgment:
++
++ "This product includes software developed by IAIK of Graz University of
++ Technology."
++
++ Alternately, this acknowledgment may appear in the software itself, if and
++ wherever such third-party acknowledgments normally appear.
++
++4. The names "Graz University of Technology" and "IAIK of Graz University of
++ Technology" must not be used to endorse or promote products derived from this
++ software without prior written permission.
++
++5. Products derived from this software may not be called "IAIK PKCS Wrapper",
++ nor may "IAIK" appear in their name, without prior written permission of
++ Graz University of Technology.
++
++THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
++INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
++FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++LICENSOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
++OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
++SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
++INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
++CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
++POSSIBILITY OF SUCH DAMAGE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to ICU4C 4.0.1 and ICU4J 4.4, which
++may be included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++Copyright (c) 1995-2010 International Business Machines Corporation and others
++
++All rights reserved.
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, and/or sell copies of the
++Software, and to permit persons to whom the Software is furnished to do so,
++provided that the above copyright notice(s) and this permission notice appear
++in all copies of the Software and that both the above copyright notice(s) and
++this permission notice appear in supporting documentation.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 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 THIS 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 this Software without prior written authorization of the copyright holder.
++All trademarks and registered trademarks mentioned herein are the property of
++their respective owners.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to IJG JPEG 6b, which may be
++included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++This software is copyright (C) 1991-1998, Thomas G. Lane.
++All Rights Reserved except as specified below.
++
++Permission is hereby granted to use, copy, modify, and distribute this
++software (or portions thereof) for any purpose, without fee, subject to these
++conditions:
++(1) If any part of the source code for this software is distributed, then this
++README file must be included, with this copyright and no-warranty notice
++unaltered; and any additions, deletions, or changes to the original files
++must be clearly indicated in accompanying documentation.
++(2) If only executable code is distributed, then the accompanying
++documentation must state that "this software is based in part on the work of
++the Independent JPEG Group".
++(3) Permission for use of this software is granted only if the user accepts
++full responsibility for any undesirable consequences; the authors accept
++NO LIABILITY for damages of any kind.
++
++These conditions apply to any software derived from or based on the IJG code,
++not just to the unmodified library. If you use our work, you ought to
++acknowledge us.
++
++Permission is NOT granted for the use of any IJG author's name or company name
++in advertising or publicity relating to this software or products derived from
++it. This software may be referred to only as "the Independent JPEG Group's
++software".
++
++We specifically permit and encourage the use of this software as the basis of
++commercial products, provided that all warranty or liability claims are
++assumed by the product vendor.
++
++--- end of LICENSE ---
++
++--------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Joni v1.1.9, which may be
++included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in all
++copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++SOFTWARE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to JOpt-Simple v3.0, which may be
++included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++ Copyright (c) 2004-2009 Paul R. Holser, Jr.
++
++ Permission is hereby granted, free of charge, to any person obtaining
++ a copy of this software and associated documentation files (the
++ "Software"), to deal in the Software without restriction, including
++ without limitation the rights to use, copy, modify, merge, publish,
++ distribute, sublicense, and/or sell copies of the Software, and to
++ permit persons to whom the Software is furnished to do so, subject to
++ the following conditions:
++
++ The above copyright notice and this permission notice shall be
++ included in all copies or substantial portions of the Software.
++
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++--- end of LICENSE ---
++
++--------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Kerberos functionality, which
++which may be included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++ (C) Copyright IBM Corp. 1999 All Rights Reserved.
++ Copyright 1997 The Open Group Research Institute. All rights reserved.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Kerberos functionality from
++FundsXpress, INC., which may be included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++ Copyright (C) 1998 by the FundsXpress, INC.
++
++ All rights reserved.
++
++ Export of this software from the United States of America may require
++ a specific license from the United States Government. It is the
++ responsibility of any person or organization contemplating export to
++ obtain such a license before exporting.
++
++ WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
++ distribute this software and its documentation for any purpose and
++ without fee is hereby granted, provided that the above copyright
++ notice appear in all copies and that both that copyright notice and
++ this permission notice appear in supporting documentation, and that
++ the name of FundsXpress. not be used in advertising or publicity pertaining
++ to distribution of the software without specific, written prior
++ permission. FundsXpress makes no representations about the suitability of
++ this software for any purpose. It is provided "as is" without express
++ or implied warranty.
++
++ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Kronos OpenGL headers, which may be
++included with JDK 8 and OpenJDK 8 source distributions.
++
++--- begin of LICENSE ---
++
++ Copyright (c) 2007 The Khronos Group Inc.
++
++ Permission is hereby granted, free of charge, to any person obtaining a copy
++ of this software and/or associated documentation files (the "Materials"), to
++ deal in the Materials without restriction, including without limitation the
++ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
++ sell copies of the Materials, and to permit persons to whom the Materials are
++ furnished to do so, subject to the following conditions:
++
++ The above copyright notice and this permission notice shall be included in all
++ copies or substantial portions of the Materials.
++
++ THE MATERIALS 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. IN NO EVENT SHALL THE
++ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++ OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE
++ MATERIALS.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% Portions Copyright Eastman Kodak Company 1992
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to libpng 1.5.4, which may be
++included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++This copy of the libpng notices is provided for your convenience. In case of
++any discrepancy between this copy and the notices in the file png.h that is
++included in the libpng distribution, the latter shall prevail.
++
++COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
++
++If you modify libpng you may insert additional notices immediately following
++this sentence.
++
++This code is released under the libpng license.
++
++libpng versions 1.2.6, August 15, 2004, through 1.5.4, July 7, 2011, are
++Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
++distributed according to the same disclaimer and license as libpng-1.2.5
++with the following individual added to the list of Contributing Authors
++
++ Cosmin Truta
++
++libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are
++Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
++distributed according to the same disclaimer and license as libpng-1.0.6
++with the following individuals added to the list of Contributing Authors
++
++ Simon-Pierre Cadieux
++ Eric S. Raymond
++ Gilles Vollant
++
++and with the following additions to the disclaimer:
++
++ There is no warranty against interference with your enjoyment of the
++ library or against infringement. There is no warranty that our
++ efforts or the library will fulfill any of your particular purposes
++ or needs. This library is provided with all faults, and the entire
++ risk of satisfactory quality, performance, accuracy, and effort is with
++ the user.
++
++libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
++Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are
++distributed according to the same disclaimer and license as libpng-0.96,
++with the following individuals added to the list of Contributing Authors:
++
++ Tom Lane
++ Glenn Randers-Pehrson
++ Willem van Schaik
++
++libpng versions 0.89, June 1996, through 0.96, May 1997, are
++Copyright (c) 1996, 1997 Andreas Dilger
++Distributed according to the same disclaimer and license as libpng-0.88,
++with the following individuals added to the list of Contributing Authors:
++
++ John Bowler
++ Kevin Bracey
++ Sam Bushell
++ Magnus Holmgren
++ Greg Roelofs
++ Tom Tanner
++
++libpng versions 0.5, May 1995, through 0.88, January 1996, are
++Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
++
++For the purposes of this copyright and license, "Contributing Authors"
++is defined as the following set of individuals:
++
++ Andreas Dilger
++ Dave Martindale
++ Guy Eric Schalnat
++ Paul Schmidt
++ Tim Wegner
++
++The PNG Reference Library is supplied "AS IS". The Contributing Authors
++and Group 42, Inc. disclaim all warranties, expressed or implied,
++including, without limitation, the warranties of merchantability and of
++fitness for any purpose. The Contributing Authors and Group 42, Inc.
++assume no liability for direct, indirect, incidental, special, exemplary,
++or consequential damages, which may result from the use of the PNG
++Reference Library, even if advised of the possibility of such damage.
++
++Permission is hereby granted to use, copy, modify, and distribute this
++source code, or portions hereof, for any purpose, without fee, subject
++to the following restrictions:
++
++1. The origin of this source code must not be misrepresented.
++
++2. Altered versions must be plainly marked as such and must not
++ be misrepresented as being the original source.
++
++3. This Copyright notice may not be removed or altered from any
++ source or altered source distribution.
++
++The Contributing Authors and Group 42, Inc. specifically permit, without
++fee, and encourage the use of this source code as a component to
++supporting the PNG file format in commercial products. If you use this
++source code in a product, acknowledgment is not required but would be
++appreciated.
++
++
++A "png_get_copyright" function is available, for convenient use in "about"
++boxes and the like:
++
++ printf("%s",png_get_copyright(NULL));
++
++Also, the PNG logo (in PNG format, of course) is supplied in the
++files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
++
++Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a
++certification mark of the Open Source Initiative.
++
++Glenn Randers-Pehrson
++glennrp at users.sourceforge.net
++July 7, 2011
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to libungif 4.1.3, which may be
++included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++The GIFLIB distribution is Copyright (c) 1997 Eric S. Raymond
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++THE SOFTWARE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Little CMS 2.5, which may be
++included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++Little CMS
++Copyright (c) 1998-2011 Marti Maria Saguer
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in all
++copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++SOFTWARE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% Lucida is a registered trademark or trademark of Bigelow & Holmes in the
++U.S. and other countries.
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Mesa 3D Graphics Library v4.1,
++which may be included with JRE 8, JDK 8, and OpenJDK 8 source distributions.
++
++--- begin of LICENSE ---
++
++ Mesa 3-D graphics library
++ Version: 4.1
++
++ Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
++
++ Permission is hereby granted, free of charge, to any person obtaining a
++ copy of this software and associated documentation files (the "Software"),
++ to deal in the Software without restriction, including without limitation
++ the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ and/or sell copies of the Software, and to permit persons to whom the
++ Software is furnished to do so, subject to the following conditions:
++
++ The above copyright notice and this permission notice shall be included
++ in all copies or substantial portions of the Software.
++
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
++ BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Mozilla Network Security
++Services (NSS), which is supplied with the JDK test suite in the OpenJDK
++source code repository. It is licensed under Mozilla Public License (MPL),
++version 2.0.
++
++The NSS libraries are supplied in executable form, built from unmodified
++NSS source code labeled with the "NSS_3.13.1_RTM" release tag.
++
++The NSS source code is available in the OpenJDK source code repository at:
++ jdk/test/sun/security/pkcs11/nss/src
++
++The NSS libraries are available in the OpenJDK source code repository at:
++ jdk/test/sun/security/pkcs11/nss/lib
++
++--- begin of LICENSE ---
++
++Mozilla Public License Version 2.0
++==================================
++
++1. Definitions
++--------------
++
++1.1. "Contributor"
++ means each individual or legal entity that creates, contributes to
++ the creation of, or owns Covered Software.
++
++1.2. "Contributor Version"
++ means the combination of the Contributions of others (if any) used
++ by a Contributor and that particular Contributor's Contribution.
++
++1.3. "Contribution"
++ means Covered Software of a particular Contributor.
++
++1.4. "Covered Software"
++ means Source Code Form to which the initial Contributor has attached
++ the notice in Exhibit A, the Executable Form of such Source Code
++ Form, and Modifications of such Source Code Form, in each case
++ including portions thereof.
++
++1.5. "Incompatible With Secondary Licenses"
++ means
++
++ (a) that the initial Contributor has attached the notice described
++ in Exhibit B to the Covered Software; or
++
++ (b) that the Covered Software was made available under the terms of
++ version 1.1 or earlier of the License, but not also under the
++ terms of a Secondary License.
++
++1.6. "Executable Form"
++ means any form of the work other than Source Code Form.
++
++1.7. "Larger Work"
++ means a work that combines Covered Software with other material, in
++ a separate file or files, that is not Covered Software.
++
++1.8. "License"
++ means this document.
++
++1.9. "Licensable"
++ means having the right to grant, to the maximum extent possible,
++ whether at the time of the initial grant or subsequently, any and
++ all of the rights conveyed by this License.
++
++1.10. "Modifications"
++ means any of the following:
++
++ (a) any file in Source Code Form that results from an addition to,
++ deletion from, or modification of the contents of Covered
++ Software; or
++
++ (b) any new file in Source Code Form that contains any Covered
++ Software.
++
++1.11. "Patent Claims" of a Contributor
++ means any patent claim(s), including without limitation, method,
++ process, and apparatus claims, in any patent Licensable by such
++ Contributor that would be infringed, but for the grant of the
++ License, by the making, using, selling, offering for sale, having
++ made, import, or transfer of either its Contributions or its
++ Contributor Version.
++
++1.12. "Secondary License"
++ means either the GNU General Public License, Version 2.0, the GNU
++ Lesser General Public License, Version 2.1, the GNU Affero General
++ Public License, Version 3.0, or any later versions of those
++ licenses.
++
++1.13. "Source Code Form"
++ means the form of the work preferred for making modifications.
++
++1.14. "You" (or "Your")
++ means an individual or a legal entity exercising rights under this
++ License. For legal entities, "You" includes any entity that
++ controls, is controlled by, or is under common control with You. For
++ purposes of this definition, "control" means (a) the power, direct
++ or indirect, to cause the direction or management of such entity,
++ whether by contract or otherwise, or (b) ownership of more than
++ fifty percent (50%) of the outstanding shares or beneficial
++ ownership of such entity.
++
++2. License Grants and Conditions
++--------------------------------
++
++2.1. Grants
++
++Each Contributor hereby grants You a world-wide, royalty-free,
++non-exclusive license:
++
++(a) under intellectual property rights (other than patent or trademark)
++ Licensable by such Contributor to use, reproduce, make available,
++ modify, display, perform, distribute, and otherwise exploit its
++ Contributions, either on an unmodified basis, with Modifications, or
++ as part of a Larger Work; and
++
++(b) under Patent Claims of such Contributor to make, use, sell, offer
++ for sale, have made, import, and otherwise transfer either its
++ Contributions or its Contributor Version.
++
++2.2. Effective Date
++
++The licenses granted in Section 2.1 with respect to any Contribution
++become effective for each Contribution on the date the Contributor first
++distributes such Contribution.
++
++2.3. Limitations on Grant Scope
++
++The licenses granted in this Section 2 are the only rights granted under
++this License. No additional rights or licenses will be implied from the
++distribution or licensing of Covered Software under this License.
++Notwithstanding Section 2.1(b) above, no patent license is granted by a
++Contributor:
++
++(a) for any code that a Contributor has removed from Covered Software;
++ or
++
++(b) for infringements caused by: (i) Your and any other third party's
++ modifications of Covered Software, or (ii) the combination of its
++ Contributions with other software (except as part of its Contributor
++ Version); or
++
++(c) under Patent Claims infringed by Covered Software in the absence of
++ its Contributions.
++
++This License does not grant any rights in the trademarks, service marks,
++or logos of any Contributor (except as may be necessary to comply with
++the notice requirements in Section 3.4).
++
++2.4. Subsequent Licenses
++
++No Contributor makes additional grants as a result of Your choice to
++distribute the Covered Software under a subsequent version of this
++License (see Section 10.2) or under the terms of a Secondary License (if
++permitted under the terms of Section 3.3).
++
++2.5. Representation
++
++Each Contributor represents that the Contributor believes its
++Contributions are its original creation(s) or it has sufficient rights
++to grant the rights to its Contributions conveyed by this License.
++
++2.6. Fair Use
++
++This License is not intended to limit any rights You have under
++applicable copyright doctrines of fair use, fair dealing, or other
++equivalents.
++
++2.7. Conditions
++
++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
++in Section 2.1.
++
++3. Responsibilities
++-------------------
++
++3.1. Distribution of Source Form
++
++All distribution of Covered Software in Source Code Form, including any
++Modifications that You create or to which You contribute, must be under
++the terms of this License. You must inform recipients that the Source
++Code Form of the Covered Software is governed by the terms of this
++License, and how they can obtain a copy of this License. You may not
++attempt to alter or restrict the recipients' rights in the Source Code
++Form.
++
++3.2. Distribution of Executable Form
++
++If You distribute Covered Software in Executable Form then:
++
++(a) such Covered Software must also be made available in Source Code
++ Form, as described in Section 3.1, and You must inform recipients of
++ the Executable Form how they can obtain a copy of such Source Code
++ Form by reasonable means in a timely manner, at a charge no more
++ than the cost of distribution to the recipient; and
++
++(b) You may distribute such Executable Form under the terms of this
++ License, or sublicense it under different terms, provided that the
++ license for the Executable Form does not attempt to limit or alter
++ the recipients' rights in the Source Code Form under this License.
++
++3.3. Distribution of a Larger Work
++
++You may create and distribute a Larger Work under terms of Your choice,
++provided that You also comply with the requirements of this License for
++the Covered Software. If the Larger Work is a combination of Covered
++Software with a work governed by one or more Secondary Licenses, and the
++Covered Software is not Incompatible With Secondary Licenses, this
++License permits You to additionally distribute such Covered Software
++under the terms of such Secondary License(s), so that the recipient of
++the Larger Work may, at their option, further distribute the Covered
++Software under the terms of either this License or such Secondary
++License(s).
++
++3.4. Notices
++
++You may not remove or alter the substance of any license notices
++(including copyright notices, patent notices, disclaimers of warranty,
++or limitations of liability) contained within the Source Code Form of
++the Covered Software, except that You may alter any license notices to
++the extent required to remedy known factual inaccuracies.
++
++3.5. Application of Additional Terms
++
++You may choose to offer, and to charge a fee for, warranty, support,
++indemnity or liability obligations to one or more recipients of Covered
++Software. However, You may do so only on Your own behalf, and not on
++behalf of any Contributor. You must make it absolutely clear that any
++such warranty, support, indemnity, or liability obligation is offered by
++You alone, and You hereby agree to indemnify every Contributor for any
++liability incurred by such Contributor as a result of warranty, support,
++indemnity or liability terms You offer. You may include additional
++disclaimers of warranty and limitations of liability specific to any
++jurisdiction.
++
++4. Inability to Comply Due to Statute or Regulation
++---------------------------------------------------
++
++If it is impossible for You to comply with any of the terms of this
++License with respect to some or all of the Covered Software due to
++statute, judicial order, or regulation then You must: (a) comply with
++the terms of this License to the maximum extent possible; and (b)
++describe the limitations and the code they affect. Such description must
++be placed in a text file included with all distributions of the Covered
++Software under this License. Except to the extent prohibited by statute
++or regulation, such description must be sufficiently detailed for a
++recipient of ordinary skill to be able to understand it.
++
++5. Termination
++--------------
++
++5.1. The rights granted under this License will terminate automatically
++if You fail to comply with any of its terms. However, if You become
++compliant, then the rights granted under this License from a particular
++Contributor are reinstated (a) provisionally, unless and until such
++Contributor explicitly and finally terminates Your grants, and (b) on an
++ongoing basis, if such Contributor fails to notify You of the
++non-compliance by some reasonable means prior to 60 days after You have
++come back into compliance. Moreover, Your grants from a particular
++Contributor are reinstated on an ongoing basis if such Contributor
++notifies You of the non-compliance by some reasonable means, this is the
++first time You have received notice of non-compliance with this License
++from such Contributor, and You become compliant prior to 30 days after
++Your receipt of the notice.
++
++5.2. If You initiate litigation against any entity by asserting a patent
++infringement claim (excluding declaratory judgment actions,
++counter-claims, and cross-claims) alleging that a Contributor Version
++directly or indirectly infringes any patent, then the rights granted to
++You by any and all Contributors for the Covered Software under Section
++2.1 of this License shall terminate.
++
++5.3. In the event of termination under Sections 5.1 or 5.2 above, all
++end user license agreements (excluding distributors and resellers) which
++have been validly granted by You or Your distributors under this License
++prior to termination shall survive termination.
++
++************************************************************************
++* *
++* 6. Disclaimer of Warranty *
++* ------------------------- *
++* *
++* Covered Software is provided under this License on an "as is" *
++* basis, without warranty of any kind, either expressed, implied, or *
++* statutory, including, without limitation, warranties that the *
++* Covered Software is free of defects, merchantable, fit for a *
++* particular purpose or non-infringing. The entire risk as to the *
++* quality and performance of the Covered Software is with You. *
++* Should any Covered Software prove defective in any respect, You *
++* (not any Contributor) assume the cost of any necessary servicing, *
++* repair, or correction. This disclaimer of warranty constitutes an *
++* essential part of this License. No use of any Covered Software is *
++* authorized under this License except under this disclaimer. *
++* *
++************************************************************************
++
++************************************************************************
++* *
++* 7. Limitation of Liability *
++* -------------------------- *
++* *
++* Under no circumstances and under no legal theory, whether tort *
++* (including negligence), contract, or otherwise, shall any *
++* Contributor, or anyone who distributes Covered Software as *
++* permitted above, be liable to You for any direct, indirect, *
++* special, incidental, or consequential damages of any character *
++* including, without limitation, damages for lost profits, loss of *
++* goodwill, work stoppage, computer failure or malfunction, or any *
++* and all other commercial damages or losses, even if such party *
++* shall have been informed of the possibility of such damages. This *
++* limitation of liability shall not apply to liability for death or *
++* personal injury resulting from such party's negligence to the *
++* extent applicable law prohibits such limitation. Some *
++* jurisdictions do not allow the exclusion or limitation of *
++* incidental or consequential damages, so this exclusion and *
++* limitation may not apply to You. *
++* *
++************************************************************************
++
++8. Litigation
++-------------
++
++Any litigation relating to this License may be brought only in the
++courts of a jurisdiction where the defendant maintains its principal
++place of business and such litigation shall be governed by laws of that
++jurisdiction, without reference to its conflict-of-law provisions.
++Nothing in this Section shall prevent a party's ability to bring
++cross-claims or counter-claims.
++
++9. Miscellaneous
++----------------
++
++This License represents the complete agreement concerning the subject
++matter hereof. If any provision of this License is held to be
++unenforceable, such provision shall be reformed only to the extent
++necessary to make it enforceable. Any law or regulation which provides
++that the language of a contract shall be construed against the drafter
++shall not be used to construe this License against a Contributor.
++
++10. Versions of the License
++---------------------------
++
++10.1. New Versions
++
++Mozilla Foundation is the license steward. Except as provided in Section
++10.3, no one other than the license steward has the right to modify or
++publish new versions of this License. Each version will be given a
++distinguishing version number.
++
++10.2. Effect of New Versions
++
++You may distribute the Covered Software under the terms of the version
++of the License under which You originally received the Covered Software,
++or under the terms of any subsequent version published by the license
++steward.
++
++10.3. Modified Versions
++
++If you create software not governed by this License, and you want to
++create a new license for such software, you may create and use a
++modified version of this License if you rename the license and remove
++any references to the name of the license steward (except to note that
++such modified license differs from this License).
++
++10.4. Distributing Source Code Form that is Incompatible With Secondary
++Licenses
++
++If You choose to distribute Source Code Form that is Incompatible With
++Secondary Licenses under the terms of this version of the License, the
++notice described in Exhibit B of this License must be attached.
++
++Exhibit A - Source Code Form License Notice
++-------------------------------------------
++
++ This Source Code Form is subject to the terms of the Mozilla Public
++ License, v. 2.0. If a copy of the MPL was not distributed with this
++ file, You can obtain one at http://mozilla.org/MPL/2.0/.
++
++If it is not possible or desirable to put the notice in a particular
++file, then You may include the notice in a location (such as a LICENSE
++file in a relevant directory) where a recipient would be likely to look
++for such a notice.
++
++You may add additional accurate notices of copyright ownership.
++
++Exhibit B - "Incompatible With Secondary Licenses" Notice
++---------------------------------------------------------
++
++ This Source Code Form is "Incompatible With Secondary Licenses", as
++ defined by the Mozilla Public License, v. 2.0.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to PC/SC Lite for Suse Linux v.1.1.1,
++which may be included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris.
++
++--- begin of LICENSE ---
++
++Copyright (c) 1999-2004 David Corcoran <corcoran@linuxnet.com>
++Copyright (c) 1999-2004 Ludovic Rousseau <ludovic.rousseau (at) free.fr>
++All rights reserved.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions
++are met:
++
++1. Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++3. All advertising materials mentioning features or use of this software
++ must display the following acknowledgement:
++ This product includes software developed by:
++ David Corcoran <corcoran@linuxnet.com>
++ http://www.linuxnet.com (MUSCLE)
++4. The name of the author may not be used to endorse or promote products
++ derived from this software without specific prior written permission.
++
++Changes to this license can be made only by the copyright author with
++explicit written consent.
++
++THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
++IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
++OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
++IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
++INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
++NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to PorterStemmer v4, which may be
++included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++See: http://tartarus.org/~martin/PorterStemmer
++
++The software is completely free for any purpose, unless notes at the head of
++the program text indicates otherwise (which is rare). In any case, the notes
++about licensing are never more restrictive than the BSD License.
++
++In every case where the software is not written by me (Martin Porter), this
++licensing arrangement has been endorsed by the contributor, and it is
++therefore unnecessary to ask the contributor again to confirm it.
++
++I have not asked any contributors (or their employers, if they have them) for
++proofs that they have the right to distribute their software in this way.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Relax NG Object/Parser v.20050510,
++which may be included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++Copyright (c) Kohsuke Kawaguchi
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions: The above copyright
++notice and this permission notice shall be included in all copies or
++substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++SOFTWARE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to RelaxNGCC v1.12, which may be
++included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++Copyright (c) 2000-2003 Daisuke Okajima and Kohsuke Kawaguchi.
++All rights reserved.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++
++1. Redistributions of source code must retain the above copyright notice, this
++ list of conditions and the following disclaimer.
++
++2. Redistributions in binary form must reproduce the above copyright notice,
++ this list of conditions and the following disclaimer in the documentation
++ and/or other materials provided with the distribution.
++
++3. The end-user documentation included with the redistribution, if any, must
++ include the following acknowledgment:
++
++ "This product includes software developed by Daisuke Okajima
++ and Kohsuke Kawaguchi (http://relaxngcc.sf.net/)."
++
++Alternately, this acknowledgment may appear in the software itself, if and
++wherever such third-party acknowledgments normally appear.
++
++4. The names of the copyright holders must not be used to endorse or promote
++ products derived from this software without prior written permission. For
++ written permission, please contact the copyright holders.
++
++5. Products derived from this software may not be called "RELAXNGCC", nor may
++ "RELAXNGCC" appear in their name, without prior written permission of the
++ copyright holders.
++
++THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
++INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
++FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.IN NO EVENT SHALL THE APACHE
++SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
++INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
++PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
++LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
++NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
++EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to SAX 2.0.1, which may be included
++with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++ SAX is free!
++
++ In fact, it's not possible to own a license to SAX, since it's been placed in
++ the public domain.
++
++ No Warranty
++
++ Because SAX is released to the public domain, there is no warranty for the
++ design or for the software implementation, to the extent permitted by
++ applicable law. Except when otherwise stated in writing the copyright holders
++ and/or other parties provide SAX "as is" without warranty of any kind, either
++ expressed or implied, including, but not limited to, the implied warranties
++ of merchantability and fitness for a particular purpose. The entire risk as
++ to the quality and performance of SAX is with you. Should SAX prove
++ defective, you assume the cost of all necessary servicing, repair or
++ correction.
++
++ In no event unless required by applicable law or agreed to in writing will
++ any copyright holder, or any other party who may modify and/or redistribute
++ SAX, be liable to you for damages, including any general, special, incidental
++ or consequential damages arising out of the use or inability to use SAX
++ (including but not limited to loss of data or data being rendered inaccurate
++ or losses sustained by you or third parties or a failure of the SAX to
++ operate with any other programs), even if such holder or other party has been
++ advised of the possibility of such damages.
++
++ Copyright Disclaimers
++
++ This page includes statements to that effect by David Megginson, who would
++ have been able to claim copyright for the original work. SAX 1.0
++
++ Version 1.0 of the Simple API for XML (SAX), created collectively by the
++ membership of the XML-DEV mailing list, is hereby released into the public
++ domain.
++
++ No one owns SAX: you may use it freely in both commercial and non-commercial
++ applications, bundle it with your software distribution, include it on a
++ CD-ROM, list the source code in a book, mirror the documentation at your own
++ web site, or use it in any other way you see fit.
++
++ David Megginson, sax@megginson.com
++ 1998-05-11
++
++ SAX 2.0
++
++ I hereby abandon any property rights to SAX 2.0 (the Simple API for XML), and
++ release all of the SAX 2.0 source code, compiled code, and documentation
++ contained in this distribution into the Public Domain. SAX comes with NO
++ WARRANTY or guarantee of fitness for any purpose.
++
++ David Megginson, david@megginson.com
++ 2000-05-05
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to SoftFloat version 2b, which may be
++included with JRE 8, JDK 8, and OpenJDK 8 on Linux/ARM.
++
++--- begin of LICENSE ---
++
++Use of any of this software is governed by the terms of the license below:
++
++SoftFloat was written by me, John R. Hauser. This work was made possible in
++part by the International Computer Science Institute, located at Suite 600,
++1947 Center Street, Berkeley, California 94704. Funding was partially
++provided by the National Science Foundation under grant MIP-9311980. The
++original version of this code was written as part of a project to build
++a fixed-point vector processor in collaboration with the University of
++California at Berkeley, overseen by Profs. Nelson Morgan and John Wawrzynek.
++
++THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort
++has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT
++TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO
++PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL
++LOSSES, COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO
++FURTHERMORE EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER
++SCIENCE INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES,
++COSTS, OR OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE
++SOFTWARE.
++
++Derivative works are acceptable, even for commercial purposes, provided
++that the minimal documentation requirements stated in the source code are
++satisfied.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Sparkle 1.5,
++which may be included with JRE 8 on Mac OS X.
++
++--- begin of LICENSE ---
++
++Copyright (c) 2012 Sparkle.org and Andy Matuschak
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in all
++copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++SOFTWARE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% Portions licensed from Taligent, Inc.
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Thai Dictionary, which may be
++included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++Copyright (C) 1982 The Royal Institute, Thai Royal Government.
++
++Copyright (C) 1998 National Electronics and Computer Technology Center,
++National Science and Technology Development Agency,
++Ministry of Science Technology and Environment,
++Thai Royal Government.
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in all
++copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++SOFTWARE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Unicode 6.2.0 & CLDR 21.0.1
++which may be included with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++Unicode Terms of Use
++
++For the general privacy policy governing access to this site, see the Unicode
++Privacy Policy. For trademark usage, see the Unicode® Consortium Name and
++Trademark Usage Policy.
++
++A. Unicode Copyright.
++ 1. Copyright © 1991-2013 Unicode, Inc. All rights reserved.
++
++ 2. Certain documents and files on this website contain a legend indicating
++ that "Modification is permitted." Any person is hereby authorized,
++ without fee, to modify such documents and files to create derivative
++ works conforming to the Unicode® Standard, subject to Terms and
++ Conditions herein.
++
++ 3. Any person is hereby authorized, without fee, to view, use, reproduce,
++ and distribute all documents and files solely for informational
++ purposes in the creation of products supporting the Unicode Standard,
++ subject to the Terms and Conditions herein.
++
++ 4. Further specifications of rights and restrictions pertaining to the use
++ of the particular set of data files known as the "Unicode Character
++ Database" can be found in Exhibit 1.
++
++ 5. Each version of the Unicode Standard has further specifications of
++ rights and restrictions of use. For the book editions (Unicode 5.0 and
++ earlier), these are found on the back of the title page. The online
++ code charts carry specific restrictions. All other files, including
++ online documentation of the core specification for Unicode 6.0 and
++ later, are covered under these general Terms of Use.
++
++ 6. No license is granted to "mirror" the Unicode website where a fee is
++ charged for access to the "mirror" site.
++
++ 7. Modification is not permitted with respect to this document. All copies
++ of this document must be verbatim.
++
++B. Restricted Rights Legend. Any technical data or software which is licensed
++ to the United States of America, its agencies and/or instrumentalities
++ under this Agreement is commercial technical data or commercial computer
++ software developed exclusively at private expense as defined in FAR 2.101,
++ or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use,
++ duplication, or disclosure by the Government is subject to restrictions as
++ set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov
++ 1995) and this Agreement. For Software, in accordance with FAR 12-212 or
++ DFARS 227-7202, as applicable, use, duplication or disclosure by the
++ Government is subject to the restrictions set forth in this Agreement.
++
++C. Warranties and Disclaimers.
++ 1. This publication and/or website may include technical or typographical
++ errors or other inaccuracies . Changes are periodically added to the
++ information herein; these changes will be incorporated in new editions
++ of the publication and/or website. Unicode may make improvements and/or
++ changes in the product(s) and/or program(s) described in this
++ publication and/or website at any time.
++
++ 2. If this file has been purchased on magnetic or optical media from
++ Unicode, Inc. the sole and exclusive remedy for any claim will be
++ exchange of the defective media within ninety (90) days of original
++ purchase.
++
++ 3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR SOFTWARE IS
++ PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED,
++ OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF
++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
++ UNICODE AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR
++ OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH
++ ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE.
++
++D. Waiver of Damages. In no event shall Unicode or its licensors be liable for
++ any special, incidental, indirect or consequential damages of any kind, or
++ any damages whatsoever, whether or not Unicode was advised of the
++ possibility of the damage, including, without limitation, those resulting
++ from the following: loss of use, data or profits, in connection with the
++ use, modification or distribution of this information or its derivatives.
++
++E.Trademarks & Logos.
++ 1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode,
++ Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of
++ Unicode, Inc. Use of the information and materials found on this
++ website indicates your acknowledgement of Unicode, Inc.’s exclusive
++ worldwide rights in the Unicode Word Mark, the Unicode Logo, and the
++ Unicode trade names.
++
++ 2. The Unicode Consortium Name and Trademark Usage Policy (“Trademark
++ Policy”) are incorporated herein by reference and you agree to abide by
++ the provisions of the Trademark Policy, which may be changed from time
++ to time in the sole discretion of Unicode, Inc.
++
++ 3. All third party trademarks referenced herein are the property of their
++ respective owners.
++
++Miscellaneous.
++ 1. Jurisdiction and Venue. This server is operated from a location in the
++ State of California, United States of America. Unicode makes no
++ representation that the materials are appropriate for use in other
++ locations. If you access this server from other locations, you are
++ responsible for compliance with local laws. This Agreement, all use of
++ this site and any claims and damages resulting from use of this site are
++ governed solely by the laws of the State of California without regard to
++ any principles which would apply the laws of a different jurisdiction.
++ The user agrees that any disputes regarding this site shall be resolved
++ solely in the courts located in Santa Clara County, California. The user
++ agrees said courts have personal jurisdiction and agree to waive any
++ right to transfer the dispute to any other forum.
++
++ 2. Modification by Unicode. Unicode shall have the right to modify this
++ Agreement at any time by posting it to this site. The user may not
++ assign any part of this Agreement without Unicode’s prior written
++ consent.
++
++ 3. Taxes. The user agrees to pay any taxes arising from access to this
++ website or use of the information herein, except for those based on
++ Unicode’s net income.
++
++ 4. Severability. If any provision of this Agreement is declared invalid or
++ unenforceable, the remaining provisions of this Agreement shall remain
++ in effect.
++
++ 5. Entire Agreement. This Agreement constitutes the entire agreement
++ between the parties.
++
++EXHIBIT 1
++UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
++
++Unicode Data Files include all data files under the directories
++http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
++http://www.unicode.org/cldr/data/. Unicode Data Files do not include PDF
++online code charts under the directory http://www.unicode.org/Public/.
++Software includes any source code published in the Unicode Standard or under
++the directories http://www.unicode.org/Public/,
++http://www.unicode.org/reports/, and http://www.unicode.org/cldr/data/.
++
++NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING,
++INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA
++FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO
++BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT
++AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR
++SOFTWARE.
++
++COPYRIGHT AND PERMISSION NOTICE
++
++Copyright © 1991-2012 Unicode, Inc. All rights reserved. Distributed under the
++Terms of Use in http://www.unicode.org/copyright.html.
++
++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.
++
++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.
++
++Unicode and the Unicode logo are trademarks of Unicode, Inc. in the United
++States and other countries. All third party trademarks referenced herein are
++the property of their respective owners.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to UPX v3.01, which may be included
++with JRE 8 on Windows.
++
++--- begin of LICENSE ---
++
++Use of any of this software is governed by the terms of the license below:
++
++
++ ooooo ooo ooooooooo. ooooooo ooooo
++ `888' `8' `888 `Y88. `8888 d8'
++ 888 8 888 .d88' Y888..8P
++ 888 8 888ooo88P' `8888'
++ 888 8 888 .8PY888.
++ `88. .8' 888 d8' `888b
++ `YbodP' o888o o888o o88888o
++
++
++ The Ultimate Packer for eXecutables
++ Copyright (c) 1996-2000 Markus Oberhumer & Laszlo Molnar
++ http://wildsau.idv.uni-linz.ac.at/mfx/upx.html
++ http://www.nexus.hu/upx
++ http://upx.tsx.org
++
++
++PLEASE CAREFULLY READ THIS LICENSE AGREEMENT, ESPECIALLY IF YOU PLAN
++TO MODIFY THE UPX SOURCE CODE OR USE A MODIFIED UPX VERSION.
++
++
++ABSTRACT
++========
++
++ UPX and UCL are copyrighted software distributed under the terms
++ of the GNU General Public License (hereinafter the "GPL").
++
++ The stub which is imbedded in each UPX compressed program is part
++ of UPX and UCL, and contains code that is under our copyright. The
++ terms of the GNU General Public License still apply as compressing
++ a program is a special form of linking with our stub.
++
++ As a special exception we grant the free usage of UPX for all
++ executables, including commercial programs.
++ See below for details and restrictions.
++
++
++COPYRIGHT
++=========
++
++ UPX and UCL are copyrighted software. All rights remain with the authors.
++
++ UPX is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer
++ UPX is Copyright (C) 1996-2000 Laszlo Molnar
++
++ UCL is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer
++
++
++GNU GENERAL PUBLIC LICENSE
++==========================
++
++ UPX and the UCL library are free software; you can redistribute them
++ and/or modify them 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.
++
++ UPX and UCL are distributed in the hope that they will be 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; see the file COPYING.
++
++
++SPECIAL EXCEPTION FOR COMPRESSED EXECUTABLES
++============================================
++
++ The stub which is imbedded in each UPX compressed program is part
++ of UPX and UCL, and contains code that is under our copyright. The
++ terms of the GNU General Public License still apply as compressing
++ a program is a special form of linking with our stub.
++
++ Hereby Markus F.X.J. Oberhumer and Laszlo Molnar grant you special
++ permission to freely use and distribute all UPX compressed programs
++ (including commercial ones), subject to the following restrictions:
++
++ 1. You must compress your program with a completely unmodified UPX
++ version; either with our precompiled version, or (at your option)
++ with a self compiled version of the unmodified UPX sources as
++ distributed by us.
++ 2. This also implies that the UPX stub must be completely unmodfied, i.e.
++ the stub imbedded in your compressed program must be byte-identical
++ to the stub that is produced by the official unmodified UPX version.
++ 3. The decompressor and any other code from the stub must exclusively get
++ used by the unmodified UPX stub for decompressing your program at
++ program startup. No portion of the stub may get read, copied,
++ called or otherwise get used or accessed by your program.
++
++
++ANNOTATIONS
++===========
++
++ - You can use a modified UPX version or modified UPX stub only for
++ programs that are compatible with the GNU General Public License.
++
++ - We grant you special permission to freely use and distribute all UPX
++ compressed programs. But any modification of the UPX stub (such as,
++ but not limited to, removing our copyright string or making your
++ program non-decompressible) will immediately revoke your right to
++ use and distribute a UPX compressed program.
++
++ - UPX is not a software protection tool; by requiring that you use
++ the unmodified UPX version for your proprietary programs we
++ make sure that any user can decompress your program. This protects
++ both you and your users as nobody can hide malicious code -
++ any program that cannot be decompressed is highly suspicious
++ by definition.
++
++ - You can integrate all or part of UPX and UCL into projects that
++ are compatible with the GNU GPL, but obviously you cannot grant
++ any special exceptions beyond the GPL for our code in your project.
++
++ - We want to actively support manufacturers of virus scanners and
++ similar security software. Please contact us if you would like to
++ incorporate parts of UPX or UCL into such a product.
++
++
++
++Markus F.X.J. Oberhumer Laszlo Molnar
++markus.oberhumer@jk.uni-linz.ac.at ml1050@cdata.tvnet.hu
++
++Linz, Austria, 25 Feb 2000
++
++Additional License(s)
++
++The UPX license file is at http://upx.sourceforge.net/upx-license.html.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to Xfree86-VidMode Extension 1.0,
++which may be included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris.
++
++--- begin of LICENSE ---
++
++Version 1.1 of XFree86 ProjectLicence.
++
++Copyright (C) 1994-2004 The XFree86 Project, Inc. All rights reserved.
++
++Permission is hereby granted, free of charge, to any person obtaining a copy of
++this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicence, and/or sell
++copies of the Software, and to permit persons to whom the Software is furnished
++to do so,subject to the following conditions:
++
++ 1. Redistributions of source code must retain the above copyright
++ notice,this list of conditions, and the following disclaimer.
++
++ 2. Redistributions in binary form must reproduce the above copyright notice,
++ this list of conditions and the following disclaimer in the documentation
++ and/or other materials provided with the distribution, and in the same place
++ and form as other copyright, license and disclaimer information.
++
++ 3. The end-user documentation included with the redistribution, if any,must
++ include the following acknowledgment: "This product includes
++ software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and
++ its contributors", in the same place and form as other third-party
++ acknowledgments. Alternately, this acknowledgment may appear in the software
++ itself, in the same form and location as other such third-party
++ acknowledgments.
++
++ 4. Except as contained in this notice, the name of The XFree86 Project,Inc
++ shall not be used in advertising or otherwise to promote the sale, use
++ or other dealings in this Software without prior written authorization from
++ The XFree86 Project, Inc.
++
++ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
++ WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
++ EVENT SHALL THE XFREE86 PROJECT, INC OR ITS CONTRIBUTORS BE LIABLE FOR ANY
++ DIRECT, INDIRECT, INCIDENTAL,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ (INCLUDING, BUT NOT LIMITED TO,PROCUREMENT OF SUBSTITUTE GOODS OR
++ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
++ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
++ DAMAGE.
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to X Window System 6.8.2, which may be
++included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris.
++
++--- begin of LICENSE ---
++
++ Licenses
++The X.Org Foundation March 2004
++
++1. Introduction
++
++The X.org Foundation X Window System distribution is a compilation of code and
++documentation from many sources. This document is intended primarily as a
++guide to the licenses used in the distribution: you must check each file
++and/or package for precise redistribution terms. None-the-less, this summary
++may be useful to many users. No software incorporating the XFree86 1.1 license
++has been incorporated.
++
++This document is based on the compilation from XFree86.
++
++2. XFree86 License
++
++XFree86 code without an explicit copyright is covered by the following
++copyright/license:
++
++Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved.
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in all
++copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
++IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of the XFree86 Project shall not
++be used in advertising or otherwise to promote the sale, use or other dealings
++in this Software without prior written authorization from the XFree86 Project.
++
++3. Other Licenses
++
++Portions of code are covered by the following licenses/copyrights. See
++individual files for the copyright dates.
++
++3.1. X/MIT Copyrights
++
++3.1.1. X Consortium
++
++Copyright (C) <date> X Consortium
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in all
++copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X
++CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
++ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of the X Consortium shall not be
++used in advertising or otherwise to promote the sale, use or other dealings in
++this Software without prior written authorization from the X Consortium.
++
++X Window System is a trademark of X Consortium, Inc.
++
++3.1.2. The Open Group
++
++Copyright <date> The Open Group
++
++Permission to use, copy, modify, distribute, and sell this software and its
++documentation for any purpose is hereby granted without fee, provided that the
++above copyright notice appear in all copies and that both that copyright
++notice and this permission notice appear in supporting documentation.
++
++The above copyright notice and this permission notice shall be included in all
++copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
++ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of The Open Group shall not be
++used in advertising or otherwise to promote the sale, use or other dealings in
++this Software without prior written authorization from The Open Group. 3.2.
++Berkeley-based copyrights:
++
++o
++3.2.1. General
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++
++ 1. Redistributions of source code must retain the above copyright notice,
++ this list of conditions and the following disclaimer.
++
++ 2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++
++ 3. The name of the author may not be used to endorse or promote products
++ derived from this software without specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
++WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
++EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
++BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
++IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
++POSSIBILITY OF SUCH DAMAGE. 3.2.2. UCB/LBL
++
++Copyright (c) 1993 The Regents of the University of California. All rights
++reserved.
++
++This software was developed by the Computer Systems Engineering group at
++Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and contributed to
++Berkeley.
++
++All advertising materials mentioning features or use of this software must
++display the following acknowledgement: This product includes software
++developed by the University of California, Lawrence Berkeley Laboratory.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++
++ 1. Redistributions of source code must retain the above copyright notice,
++ this list of conditions and the following disclaimer.
++
++ 2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++
++ 3. All advertising materials mentioning features or use of this software
++ must display the following acknowledgement: This product includes software
++ developed by the University of California, Berkeley and its contributors.
++
++ 4. Neither the name of the University nor the names of its contributors may
++ be used to endorse or promote products derived from this software without
++ specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
++EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
++DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3.2.3. The
++NetBSD Foundation, Inc.
++
++Copyright (c) 2003 The NetBSD Foundation, Inc. All rights reserved.
++
++This code is derived from software contributed to The NetBSD Foundation by Ben
++Collver <collver1@attbi.com>
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++
++ 1. Redistributions of source code must retain the above copyright notice,
++ this list of conditions and the following disclaimer.
++
++ 2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++
++ 3. All advertising materials mentioning features or use of this software
++ must display the following acknowledgement: This product includes software
++ developed by the NetBSD Foundation, Inc. and its contributors.
++
++ 4. Neither the name of The NetBSD Foundation nor the names of its
++ contributors may be used to endorse or promote products derived from this
++ software without specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS ``AS
++IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
++DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3.2.4. Theodore
++Ts'o.
++
++Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999. All rights
++reserved.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++
++ 1. Redistributions of source code must retain the above copyright notice,
++ and the entire permission notice in its entirety, including the disclaimer
++ of warranties.
++
++ 2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++
++ 3. he name of the author may not be used to endorse or promote products
++ derived from this software without specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
++INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
++FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED. IN NO
++EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
++BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
++IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE
++POSSIBILITY OF SUCH DAMAGE. 3.2.5. Theo de Raadt and Damien Miller
++
++Copyright (c) 1995,1999 Theo de Raadt. All rights reserved. Copyright (c)
++2001-2002 Damien Miller. All rights reserved.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++
++ 1. Redistributions of source code must retain the above copyright notice,
++ this list of conditions and the following disclaimer.
++
++ 2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++
++THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
++WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
++EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
++BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
++IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
++POSSIBILITY OF SUCH DAMAGE. 3.2.6. Todd C. Miller
++
++Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
++
++Permission to use, copy, modify, and distribute this software for any purpose
++with or without fee is hereby granted, provided that the above copyright
++notice and this permission notice appear in all copies.
++
++THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL WARRANTIES
++WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
++MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE FOR
++ANY SPECIAL, DIRECT, 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 THIS SOFTWARE. 3.2.7. Thomas
++Winischhofer
++
++Copyright (C) 2001-2004 Thomas Winischhofer
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++
++ 1. Redistributions of source code must retain the above copyright notice,
++ this list of conditions and the following disclaimer.
++
++ 2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++
++ 3. The name of the author may not be used to endorse or promote products
++ derived from this software without specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR IMPLIED
++WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
++EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
++BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
++IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
++POSSIBILITY OF SUCH DAMAGE. 3.3. NVIDIA Corp
++
++Copyright (c) 1996 NVIDIA, Corp. All rights reserved.
++
++NOTICE TO USER: The source code is copyrighted under U.S. and international
++laws. NVIDIA, Corp. of Sunnyvale, California owns the copyright and as design
++patents pending on the design and interface of the NV chips. Users and
++possessors of this source code are hereby granted a nonexclusive, royalty-free
++copyright and design patent license to use this code in individual and
++commercial software.
++
++Any use of this source code must include, in the user documentation and
++internal comments to the code, notices to the end user as follows:
++
++Copyright (c) 1996 NVIDIA, Corp. NVIDIA design patents pending in the U.S. and
++foreign countries.
++
++NVIDIA, CORP. MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE
++CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
++WARRANTY OF ANY KIND. NVIDIA, CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO
++THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
++FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA, CORP. BE LIABLE
++FOR ANY SPECIAL, INDIRECT, INCIDENTAL, 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 THIS SOURCE CODE. 3.4. GLX Public
++License
++
++GLX PUBLIC LICENSE (Version 1.0 (2/11/99)) ("License")
++
++Subject to any third party claims, Silicon Graphics, Inc. ("SGI") hereby
++grants permission to Recipient (defined below), under Recipient's copyrights
++in the Original Software (defined below), to use, copy, modify, merge,
++publish, distribute, sublicense and/or sell copies of Subject Software
++(defined below), and to permit persons to whom the Subject Software is
++furnished in accordance with this License to do the same, subject to all of
++the following terms and conditions, which Recipient accepts by engaging in any
++such use, copying, modifying, merging, publishing, distributing, sublicensing
++or selling:
++
++1. Definitions.
++
++ (a) "Original Software" means source code of computer software code which
++ is described in Exhibit A as Original Software.
++
++ (b) "Modifications" means any addition to or deletion from the substance
++ or structure of either the Original Software or any previous
++ Modifications. When Subject Software is released as a series of files, a
++ Modification means (i) any addition to or deletion from the contents of a
++ file containing Original Software or previous Modifications and (ii) any
++ new file that contains any part of the Original Code or previous
++ Modifications.
++
++ (c) "Subject Software" means the Original Software or Modifications or the
++ combination of the Original Software and Modifications, or portions of any
++ of the foregoing.
++
++ (d) "Recipient" means an individual or a legal entity exercising rights
++ under, and complying with all of the terms of, this License. For legal
++ entities, "Recipient" includes any entity which controls, is controlled
++ by, or is under common control with Recipient. For purposes of this
++ definition, "control" of an entity means (a) the power, direct or
++ indirect, to direct or manage such entity, or (b) ownership of fifty
++ percent (50%) or more of the outstanding shares or beneficial ownership of
++ such entity.
++
++2. Redistribution of Source Code Subject to These Terms. Redistributions of
++Subject Software in source code form must retain the notice set forth in
++Exhibit A, below, in every file. A copy of this License must be included in
++any documentation for such Subject Software where the recipients' rights
++relating to Subject Software are described. Recipient may distribute the
++source code version of Subject Software under a license of Recipient's choice,
++which may contain terms different from this License, provided that (i)
++Recipient is in compliance with the terms of this License, and (ii) the
++license terms include this Section 2 and Sections 3, 4, 7, 8, 10, 12 and 13 of
++this License, which terms may not be modified or superseded by any other terms
++of such license. If Recipient distributes the source code version under a
++different license Recipient must make it absolutely clear that any terms which
++differ from this License are offered by Recipient alone, not by SGI. Recipient
++hereby agrees to indemnify SGI for any liability incurred by SGI as a result
++of any such terms Recipient offers.
++
++3. Redistribution in Executable Form. The notice set forth in Exhibit A must
++be conspicuously included in any notice in an executable version of Subject
++Software, related documentation or collateral in which Recipient describes the
++user's rights relating to the Subject Software. Recipient may distribute the
++executable version of Subject Software under a license of Recipient's choice,
++which may contain terms different from this License, provided that (i)
++Recipient is in compliance with the terms of this License, and (ii) the
++license terms include this Section 3 and Sections 4, 7, 8, 10, 12 and 13 of
++this License, which terms may not be modified or superseded by any other terms
++of such license. If Recipient distributes the executable version under a
++different license Recipient must make it absolutely clear that any terms which
++differ from this License are offered by Recipient alone, not by SGI. Recipient
++hereby agrees to indemnify SGI for any liability incurred by SGI as a result
++of any such terms Recipient offers.
++
++4. Termination. This License and the rights granted hereunder will terminate
++automatically if Recipient fails to comply with terms herein and fails to cure
++such breach within 30 days of the breach. Any sublicense to the Subject
++Software which is properly granted shall survive any termination of this
++License absent termination by the terms of such sublicense. Provisions which,
++by their nature, must remain in effect beyond the termination of this License
++shall survive.
++
++5. No Trademark Rights. This License does not grant any rights to use any
++trade name, trademark or service mark whatsoever. No trade name, trademark or
++service mark of SGI may be used to endorse or promote products derived from
++the Subject Software without prior written permission of SGI.
++
++6. No Other Rights. This License does not grant any rights with respect to the
++OpenGL API or to any software or hardware implementation thereof or to any
++other software whatsoever, nor shall any other rights or licenses not
++expressly granted hereunder arise by implication, estoppel or otherwise with
++respect to the Subject Software. Title to and ownership of the Original
++Software at all times remains with SGI. All rights in the Original Software
++not expressly granted under this License are reserved.
++
++7. Compliance with Laws; Non-Infringement. Recipient shall comply with all
++applicable laws and regulations in connection with use and distribution of the
++Subject Software, including but not limited to, all export and import control
++laws and regulations of the U.S. government and other countries. Recipient may
++not distribute Subject Software that (i) in any way infringes (directly or
++contributorily) the rights (including patent, copyright, trade secret,
++trademark or other intellectual property rights of any kind) of any other
++person or entity or (ii) breaches any representation or warranty, express,
++implied or statutory, which under any applicable law it might be deemed to
++have been distributed.
++
++8. Claims of Infringement. If Recipient at any time has knowledge of any one
++or more third party claims that reproduction, modification, use, distribution,
++import or sale of Subject Software (including particular functionality or code
++incorporated in Subject Software) infringes the third party's intellectual
++property rights, Recipient must place in a well-identified web page bearing
++the title "LEGAL" a description of each such claim and a description of the
++party making each such claim in sufficient detail that a user of the Subject
++Software will know whom to contact regarding the claim. Also, upon gaining
++such knowledge of any such claim, Recipient must conspicuously include the URL
++for such web page in the Exhibit A notice required under Sections 2 and 3,
++above, and in the text of any related documentation, license agreement or
++collateral in which Recipient describes end user's rights relating to the
++Subject Software. If Recipient obtains such knowledge after it makes Subject
++Software available to any other person or entity, Recipient shall take other
++steps (such as notifying appropriate mailing lists or newsgroups) reasonably
++calculated to inform those who received the Subject Software that new
++knowledge has been obtained.
++
++9. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
++WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
++LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS,
++MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON- INFRINGING. SGI ASSUMES NO
++RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
++PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY
++SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
++ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
++HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
++
++10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
++WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY),
++CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY
++DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
++CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK
++STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
++COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
++THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY
++TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO
++THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT
++ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
++THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT.
++
++11. Indemnity. Recipient shall be solely responsible for damages arising,
++directly or indirectly, out of its utilization of rights under this License.
++Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc. from
++and against any loss, liability, damages, costs or expenses (including the
++payment of reasonable attorneys fees) arising out of Recipient's use,
++modification, reproduction and distribution of the Subject Software or out of
++any representation or warranty made by Recipient.
++
++12. U.S. Government End Users. The Subject Software is a "commercial item"
++consisting of "commercial computer software" as such terms are defined in
++title 48 of the Code of Federal Regulations and all U.S. Government End Users
++acquire only the rights set forth in this License and are subject to the terms
++of this License.
++
++13. Miscellaneous. This License represents the complete agreement concerning
++subject matter hereof. If any provision of this License is held to be
++unenforceable, such provision shall be reformed so as to achieve as nearly as
++possible the same economic effect as the original provision and the remainder
++of this License will remain in effect. This License shall be governed by and
++construed in accordance with the laws of the United States and the State of
++California as applied to agreements entered into and to be performed entirely
++within California between California residents. Any litigation relating to
++this License shall be subject to the exclusive jurisdiction of the Federal
++Courts of the Northern District of California (or, absent subject matter
++jurisdiction in such courts, the courts of the State of California), with
++venue lying exclusively in Santa Clara County, California, with the losing
++party responsible for costs, including without limitation, court costs and
++reasonable attorneys fees and expenses. The application of the United Nations
++Convention on Contracts for the International Sale of Goods is expressly
++excluded. Any law or regulation which provides that the language of a contract
++shall be construed against the drafter shall not apply to this License.
++
++Exhibit A
++
++The contents of this file are subject to Sections 2, 3, 4, 7, 8, 10, 12 and 13
++of the GLX Public License Version 1.0 (the "License"). You may not use this
++file except in compliance with those sections of the License. You may obtain a
++copy of the License at Silicon Graphics, Inc., attn: Legal Services, 2011 N.
++Shoreline Blvd., Mountain View, CA 94043 or at
++http://www.sgi.com/software/opensource/glx/license.html.
++
++Software distributed under the License is distributed on an "AS IS" basis. ALL
++WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
++WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON-
++INFRINGEMENT. See the License for the specific language governing rights and
++limitations under the License.
++
++The Original Software is GLX version 1.2 source code, released February, 1999.
++The developer of the Original Software is Silicon Graphics, Inc. Those
++portions of the Subject Software created by Silicon Graphics, Inc. are
++Copyright (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved. 3.5. CID
++Font Code Public License
++
++CID FONT CODE PUBLIC LICENSE (Version 1.0 (3/31/99))("License")
++
++Subject to any applicable third party claims, Silicon Graphics, Inc. ("SGI")
++hereby grants permission to Recipient (defined below), under SGI's copyrights
++in the Original Software (defined below), to use, copy, modify, merge,
++publish, distribute, sublicense and/or sell copies of Subject Software
++(defined below) in both source code and executable form, and to permit persons
++to whom the Subject Software is furnished in accordance with this License to
++do the same, subject to all of the following terms and conditions, which
++Recipient accepts by engaging in any such use, copying, modifying, merging,
++publication, distributing, sublicensing or selling:
++
++1. Definitions.
++
++ a. "Original Software" means source code of computer software code that is
++ described in Exhibit A as Original Software.
++
++ b. "Modifications" means any addition to or deletion from the substance or
++ structure of either the Original Software or any previous Modifications.
++ When Subject Software is released as a series of files, a Modification
++ means (i) any addition to or deletion from the contents of a file
++ containing Original Software or previous Modifications and (ii) any new
++ file that contains any part of the Original Code or previous
++ Modifications.
++
++ c. "Subject Software" means the Original Software or Modifications or the
++ combination of the Original Software and Modifications, or portions of any
++ of the foregoing.
++
++ d. "Recipient" means an individual or a legal entity exercising rights
++ under the terms of this License. For legal entities, "Recipient" includes
++ any entity that controls, is controlled by, or is under common control
++ with Recipient. For purposes of this definition, "control" of an entity
++ means (i) the power, direct or indirect, to direct or manage such entity,
++ or (ii) ownership of fifty percent (50%) or more of the outstanding shares
++ or beneficial ownership of such entity.
++
++ e. "Required Notice" means the notice set forth in Exhibit A to this
++ License.
++
++ f. "Accompanying Technology" means any software or other technology that
++ is not a Modification and that is distributed or made publicly available
++ by Recipient with the Subject Software. Separate software files that do
++ not contain any Original Software or any previous Modification shall not
++ be deemed a Modification, even if such software files are aggregated as
++ part of a product, or in any medium of storage, with any file that does
++ contain Original Software or any previous Modification.
++
++2. License Terms. All distribution of the Subject Software must be made
++subject to the terms of this License. A copy of this License and the Required
++Notice must be included in any documentation for Subject Software where
++Recipient's rights relating to Subject Software and/or any Accompanying
++Technology are described. Distributions of Subject Software in source code
++form must also include the Required Notice in every file distributed. In
++addition, a ReadMe file entitled "Important Legal Notice" must be distributed
++with each distribution of one or more files that incorporate Subject Software.
++That file must be included with distributions made in both source code and
++executable form. A copy of the License and the Required Notice must be
++included in that file. Recipient may distribute Accompanying Technology under
++a license of Recipient's choice, which may contain terms different from this
++License, provided that (i) Recipient is in compliance with the terms of this
++License, (ii) such other license terms do not modify or supersede the terms of
++this License as applicable to the Subject Software, (iii) Recipient hereby
++indemnifies SGI for any liability incurred by SGI as a result of the
++distribution of Accompanying Technology or the use of other license terms.
++
++3. Termination. This License and the rights granted hereunder will terminate
++automatically if Recipient fails to comply with terms herein and fails to cure
++such breach within 30 days of the breach. Any sublicense to the Subject
++Software that is properly granted shall survive any termination of this
++License absent termination by the terms of such sublicense. Provisions which,
++by their nature, must remain in effect beyond the termination of this License
++shall survive.
++
++4. Trademark Rights. This License does not grant any rights to use any trade
++name, trademark or service mark whatsoever. No trade name, trademark or
++service mark of SGI may be used to endorse or promote products derived from or
++incorporating any Subject Software without prior written permission of SGI.
++
++5. No Other Rights. No rights or licenses not expressly granted hereunder
++shall arise by implication, estoppel or otherwise. Title to and ownership of
++the Original Software at all times remains with SGI. All rights in the
++Original Software not expressly granted under this License are reserved.
++
++6. Compliance with Laws; Non-Infringement. Recipient shall comply with all
++applicable laws and regulations in connection with use and distribution of the
++Subject Software, including but not limited to, all export and import control
++laws and regulations of the U.S. government and other countries. Recipient may
++not distribute Subject Software that (i) in any way infringes (directly or
++contributorily) the rights (including patent, copyright, trade secret,
++trademark or other intellectual property rights of any kind) of any other
++person or entity, or (ii) breaches any representation or warranty, express,
++implied or statutory, which under any applicable law it might be deemed to
++have been distributed.
++
++7. Claims of Infringement. If Recipient at any time has knowledge of any one
++or more third party claims that reproduction, modification, use, distribution,
++import or sale of Subject Software (including particular functionality or code
++incorporated in Subject Software) infringes the third party's intellectual
++property rights, Recipient must place in a well-identified web page bearing
++the title "LEGAL" a description of each such claim and a description of the
++party making each such claim in sufficient detail that a user of the Subject
++Software will know whom to contact regarding the claim. Also, upon gaining
++such knowledge of any such claim, Recipient must conspicuously include the URL
++for such web page in the Required Notice, and in the text of any related
++documentation, license agreement or collateral in which Recipient describes
++end user's rights relating to the Subject Software. If Recipient obtains such
++knowledge after it makes Subject Software available to any other person or
++entity, Recipient shall take other steps (such as notifying appropriate
++mailing lists or newsgroups) reasonably calculated to provide such knowledge
++to those who received the Subject Software.
++
++8. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
++WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
++LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS,
++MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. SGI ASSUMES NO
++RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
++PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY
++SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
++ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
++HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
++
++9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
++WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY),
++CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY CLAIM,
++DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
++OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SUBJECT SOFTWARE OR
++THE USE OR OTHER DEALINGS IN THE SUBJECT SOFTWARE. SOME JURISDICTIONS DO NOT
++ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THIS EXCLUSION AND
++LIMITATION MAY NOT APPLY TO RECIPIENT TO THE EXTENT SO DISALLOWED.
++
++10. Indemnity. Recipient shall be solely responsible for damages arising,
++directly or indirectly, out of its utilization of rights under this License.
++Recipient will defend, indemnify and hold SGI and its successors and assigns
++harmless from and against any loss, liability, damages, costs or expenses
++(including the payment of reasonable attorneys fees) arising out of
++(Recipient's use, modification, reproduction and distribution of the Subject
++Software or out of any representation or warranty made by Recipient.
++
++11. U.S. Government End Users. The Subject Software is a "commercial item"
++consisting of "commercial computer software" as such terms are defined in
++title 48 of the Code of Federal Regulations and all U.S. Government End Users
++acquire only the rights set forth in this License and are subject to the terms
++of this License.
++
++12. Miscellaneous. This License represents the complete agreement concerning
++subject matter hereof. If any provision of this License is held to be
++unenforceable by any judicial or administrative authority having proper
++jurisdiction with respect thereto, such provision shall be reformed so as to
++achieve as nearly as possible the same economic effect as the original
++provision and the remainder of this License will remain in effect. This
++License shall be governed by and construed in accordance with the laws of the
++United States and the State of California as applied to agreements entered
++into and to be performed entirely within California between California
++residents. Any litigation relating to this License shall be subject to the
++exclusive jurisdiction of the Federal Courts of the Northern District of
++California (or, absent subject matter jurisdiction in such courts, the courts
++of the State of California), with venue lying exclusively in Santa Clara
++County, California, with the losing party responsible for costs, including
++without limitation, court costs and reasonable attorneys fees and expenses.
++The application of the United Nations Convention on Contracts for the
++International Sale of Goods is expressly excluded. Any law or regulation that
++provides that the language of a contract shall be construed against the
++drafter shall not apply to this License.
++
++Exhibit A
++
++Copyright (c) 1994-1999 Silicon Graphics, Inc.
++
++The contents of this file are subject to the CID Font Code Public License
++Version 1.0 (the "License"). You may not use this file except in compliance
++with the License. You may obtain a copy of the License at Silicon Graphics,
++Inc., attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043
++or at http://www.sgi.com/software/opensource/cid/license.html
++
++Software distributed under the License is distributed on an "AS IS" basis. ALL
++WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
++WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF
++NON-INFRINGEMENT. See the License for the specific language governing rights
++and limitations under the License.
++
++The Original Software (as defined in the License) is CID font code that was
++developed by Silicon Graphics, Inc. Those portions of the Subject Software (as
++defined in the License) that were created by Silicon Graphics, Inc. are
++Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved.
++
++[NOTE: When using this text in connection with Subject Software delivered
++solely in object code form, Recipient may replace the words "this file" with
++"this software" in both the first and second sentences.] 3.6. Bitstream Vera
++Fonts Copyright
++
++The fonts have a generous copyright, allowing derivative works (as long as
++"Bitstream" or "Vera" are not in the names), and full redistribution (so long
++as they are not *sold* by themselves). They can be be bundled, redistributed
++and sold with any software.
++
++The fonts are distributed under the following copyright:
++
++Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a
++trademark of Bitstream, Inc.
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of the fonts accompanying this license ("Fonts") and associated documentation
++files (the "Font Software"), to reproduce and distribute the Font Software,
++including without limitation the rights to use, copy, merge, publish,
++distribute, and/or sell copies of the Font Software, and to permit persons to
++whom the Font Software is furnished to do so, subject to the following
++conditions:
++
++The above copyright and trademark notices and this permission notice shall be
++included in all copies of one or more of the Font Software typefaces.
++
++The Font Software may be modified, altered, or added to, and in particular the
++designs of glyphs or characters in the Fonts may be modified and additional
++glyphs or characters may be added to the Fonts, only if the fonts are renamed
++to names not containing either the words "Bitstream" or the word "Vera".
++
++This License becomes null and void to the extent applicable to Fonts or Font
++Software that has been modified and is distributed under the "Bitstream Vera"
++names.
++
++The Font Software may be sold as part of a larger software package but no copy
++of one or more of the Font Software typefaces may be sold by itself.
++
++THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
++TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION
++BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL,
++SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO
++USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
++
++Except as contained in this notice, the names of Gnome, the Gnome Foundation,
++and Bitstream Inc., shall not be used in advertising or otherwise to promote
++the sale, use or other dealings in this Font Software without prior written
++authorization from the Gnome Foundation or Bitstream Inc., respectively. For
++further information, contact: fonts at gnome dot org. 3.7. Bigelow & Holmes
++Inc and URW++ GmbH Luxi font license
++
++Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font instruction
++code copyright (c) 2001 by URW++ GmbH. All Rights Reserved. Luxi is a
++registered trademark of Bigelow & Holmes Inc.
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of these Fonts and associated documentation files (the "Font Software"), to
++deal in the Font Software, including without limitation the rights to use,
++copy, merge, publish, distribute, sublicense, and/or sell copies of the Font
++Software, and to permit persons to whom the Font Software is furnished to do
++so, subject to the following conditions:
++
++The above copyright and trademark notices and this permission notice shall be
++included in all copies of one or more of the Font Software.
++
++The Font Software may not be modified, altered, or added to, and in particular
++the designs of glyphs or characters in the Fonts may not be modified nor may
++additional glyphs or characters be added to the Fonts. This License becomes
++null and void when the Fonts or Font Software have been modified.
++
++THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
++TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW & HOLMES INC. OR URW++
++GMBH. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY
++GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN
++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
++INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT
++SOFTWARE.
++
++Except as contained in this notice, the names of Bigelow & Holmes Inc. and
++URW++ GmbH. shall not be used in advertising or otherwise to promote the sale,
++use or other dealings in this Font Software without prior written
++authorization from Bigelow & Holmes Inc. and URW++ GmbH.
++
++For further information, contact:
++
++info@urwpp.de or design@bigelowandholmes.com
++
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to zlib v1.2.5, which may be included
++with JRE 8, JDK 8, and OpenJDK 8.
++
++--- begin of LICENSE ---
++
++ version 1.2.5, July 18th, 2005
++
++ Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
++
++ This software is provided 'as-is', without any express or implied
++ warranty. In no event will the authors be held liable for any damages
++ arising from the use of this software.
++
++ Permission is granted to anyone to use this software for any purpose,
++ including commercial applications, and to alter it and redistribute it
++ freely, subject to the following restrictions:
++
++ 1. The origin of this software must not be misrepresented; you must not
++ claim that you wrote the original software. If you use this software
++ in a product, an acknowledgment in the product documentation would be
++ appreciated but is not required.
++ 2. Altered source versions must be plainly marked as such, and must not be
++ misrepresented as being the original software.
++ 3. This notice may not be removed or altered from any source distribution.
++
++ Jean-loup Gailly Mark Adler
++ jloup@gzip.org madler@alumni.caltech.edu
++
++--- end of LICENSE ---
++
++-------------------------------------------------------------------------------
++
++%% This notice is provided with respect to the following which may be
++included with JRE 8, JDK 8, and OpenJDK 8, except where noted:
++
++ Apache Commons Math 2.2
++ Apache Derby 10.10.1.2 [included with JDK 8]
++ Apache Jakarta BCEL 5.2
++ Apache Jakarta Regexp 1.4
++ Apache Santuario XML Security for Java 1.5.4
++ Apache Xalan-Java 2.7.1
++ Apache Xerces Java 2.10.0
++ Apache XML Resolver 1.1
++ Dynalink 0.5
++
++These components are licensed under the Apache License, Version 2.0.
++See /usr/share/common-licenses/Apache-2.0
++
++-------------------------------------------------------------------------------
++
++
++===============================================================================
++
++JAMVM:
++
++ Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010
++ Robert Lougher <rob@jamvm.org.uk>.
++
++ 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,
++ 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, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++
++debian/dbg8.py:
++# Copyright 2016, Red Hat and individual contributors
++# by the @authors tag.
++#
++# This is free software; you can redistribute it and/or modify it
++# under the terms of the GNU Lesser General Public License as
++# published by the Free Software Foundation; either version 2.1 of
++# the License, or (at your option) any later version.
++#
++# This software is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# Lesser General Public License for more details.
++
++On Debian systems a full copy of the GNU General Public License, GPL, can be
++found in the file /usr/share/common-licenses/GPL-2.
--- /dev/null
--- /dev/null
++# Copyright 2016, Red Hat and individual contributors
++# by the @authors tag.
++#
++# This is free software; you can redistribute it and/or modify it
++# under the terms of the GNU Lesser General Public License as
++# published by the Free Software Foundation; either version 2.1 of
++# the License, or (at your option) any later version.
++#
++# This software is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# Lesser General Public License for more details.
++#
++# You should have received a copy of the GNU Lesser General Public
++# License along with this software; if not, write to the Free
++# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
++# 02110-1301 USA, or see the FSF site: http://www.fsf.org.
++#
++# @authors Andrew Dinn
++
++import gdb
++
++import re
++from gdb.FrameDecorator import FrameDecorator
++
++# we rely on the unwinder API provided by gdb.7.10
++
++_dump_frame = False
++_have_unwinder = True
++try:
++ from gdb.unwinder import Unwinder
++ gdb.write("Installing openjdk unwinder\n")
++except ImportError:
++ _have_unwinder = False
++ # We need something here; it doesn't matter what as no unwinder
++ # will ever be instantiated.
++ Unwinder = object
++
++
++def debug_write(msg):
++ gdb.write(msg)
++ # pass
++
++def t(msg):
++ gdb.write("%s\n" % msg)
++ # pass
++
++# debug_write("dbg.py\n")
++
++# class providing various type conversions for gdb Value instances
++
++class Types(object):
++ # cache some basic primitive and pointer types
++ byte_t = gdb.lookup_type('unsigned char')
++ char_t = gdb.lookup_type('char')
++ int_t = gdb.lookup_type('int')
++ long_t = gdb.lookup_type('long')
++ void_t = gdb.lookup_type('void')
++
++ bytep_t = byte_t.pointer()
++ charp_t = char_t.pointer()
++ intp_t = int_t.pointer()
++ longp_t = long_t.pointer()
++ voidp_t = void_t.pointer()
++
++ nmethodp_t = gdb.lookup_type('nmethod').pointer()
++
++ ptrp_t = voidp_t.pointer()
++
++ # convert Values to primitive Values
++ @classmethod
++ def cast_byte(cls, value):
++ return value.cast(cls.byte_t)
++
++ @classmethod
++ def cast_int(cls, value):
++ return value.cast(cls.int_t)
++
++ @classmethod
++ def cast_long(cls, value):
++ return value.cast(cls.long_t)
++
++ # convert Values to pointer Values
++ @classmethod
++ def cast_bytep(cls, value):
++ return value.cast(cls.bytep_t)
++
++ @classmethod
++ def cast_intp(cls, value):
++ return value.cast(cls.intp_t)
++
++ @classmethod
++ def cast_longp(cls, value):
++ return value.cast(cls.longp_t)
++
++ @classmethod
++ def cast_voidp(cls, value):
++ return value.cast(cls.voidp_t)
++
++ @classmethod
++ def cast_ptrp(cls, value):
++ return value.cast(cls.ptrp_t)
++
++ # cast Value to pointer type then load and return contents as Value
++ @classmethod
++ def load_ptr(cls, value):
++ return cls.cast_ptrp(cls.cast_ptrp(value).dereference())
++
++ @classmethod
++ def load_byte(cls, value):
++ return cls.cast_bytep(value).dereference()
++
++ @classmethod
++ def load_int(cls, value):
++ return cls.cast_intp(value).dereference()
++
++ @classmethod
++ def load_long(cls, value):
++ return cls.cast_longp(value).dereference()
++
++ # cast Value to int and return as python integer
++ @classmethod
++ def as_int(cls, value):
++ return int(cls.cast_int(value))
++
++ # cast Value to long and return as python integer
++ @classmethod
++ def as_long(cls, value):
++ return int(cls.cast_long(value))
++
++ # construct Value from integer x and cast to type t
++ @classmethod
++ def to_type(cls, x, t):
++ return gdb.Value(x).cast(t)
++
++ # construct voidp Value from integer x
++ @classmethod
++ def to_voidp(cls, x):
++ return cls.to_type(x, cls.voidp_t)
++
++ # construct void ** Value from integer x
++ @classmethod
++ def to_ptrp(cls, x):
++ return cls.to_type(x, cls.ptrp_t)
++
++# OpenJDK specific classes which understand the layout of the code
++# heap and know how to translate a PC to an associated code blob and,
++# from there to a method object. n.b. in some cases the latter step
++# requires a frame base pointer bu tthat can be calculated using the
++# code blob and stack pointer
++
++# class encapsulating details of a specific heap
++
++class CodeHeap:
++
++ # track whether we have static initialized yet
++ class_inited = False
++ heap_block_type = None
++ code_blob_type = None
++
++ @classmethod
++ def class_init(cls):
++ # t("CodeHeap.class_init")
++ if cls.class_inited:
++ return
++ # we can only proceed if we have the necessary heap symbols
++ # if this excepts then we don't care
++ cls.heap_block_type = gdb.lookup_type("HeapBlock").pointer()
++ cls.code_blob_type = gdb.lookup_type("CodeBlob").pointer()
++ cls.class_inited = True
++
++ def __init__(self, heap):
++ # t("CodeHeap.__init__")
++ # make sure we have static inited successfuly
++ self.class_init()
++ # if we got here we are ok to create a new instance
++ self.heap = heap
++ self.name = "codeheap"
++ self.lo = Types.as_long(heap['_memory']['_low_boundary'])
++ self.hi = Types.as_long(heap['_memory']['_high_boundary'])
++ self.segmap = heap['_segmap']
++ self.segmap_lo = self.segmap['_low']
++ self.segment_size = int(heap['_segment_size'])
++ self.log2_segment_size = int(heap['_log2_segment_size'])
++ # debug_write("@@ heap.name = %s\n" % self.name)
++ # debug_write("@@ heap.lo = 0x%x\n" % self.lo)
++ # debug_write("@@ heap.hi = 0x%x\n" % self.hi)
++
++ def inrange(self, x):
++ # t("CodeHeap.inrange")
++ return self.lo <= x and self.hi > x
++ def findblob(self, pc):
++ # t("CodeHeap.findblob")
++ x = Types.as_long(pc)
++ # debug_write("@@ findblob(%s, 0x%x)\n" % (self.name, pc))
++ # debug_write("@@ pc (%s) = 0x%x \n" % (str(pc.type), pc))
++ # debug_write("@@ self.lo = 0x%x\n" % self.lo)
++ # debug_write("@@ self.hi = 0x%x\n" % self.hi)
++ # check pc is in this heap's range
++ # t("if not self.inrange(x):")
++ if not self.inrange(x):
++ return None
++ # debug_write("@@ pc in range\n")
++ # t("segments = 0")
++ segments = 0
++ # debug_write("@@ segmap_lo (%s) = 0x%x\n" % (str(self.segmap_lo.type), self.segmap_lo))
++ # debug_write("@@ self.lo = 0x%x \n" % self.lo)
++ # debug_write("@@ self.log2_segment_size = 0x%x \n" % self.log2_segment_size)
++ # t("offset = Types.as_long(pc - self.lo)")
++ offset = Types.as_long(pc - self.lo)
++ # debug_write("@@ offset = 0x%x\n" % offset)
++ # t("shift = self.log2_segment_size")
++ shift = self.log2_segment_size
++ # debug_write("@@ shift = 0x%x\n" % shift)
++ # t("segment = offset >> shift")
++ segment = offset >> shift
++ # segment = (offset >> self.log2_segment_size)
++ #segment = offset >> (self.log2_segment_size & 0x31)
++ # debug_write("@@ segment = 0x%x\n" % segment)
++ # t("tag = (self.segmap_lo + segment).dereference() & 0xff")
++ tag = (self.segmap_lo + segment).dereference() & 0xff
++ # tag = Types.load_byte(self.segmap_lo + segment) & 0xff
++ # debug_write("@@ tag (%s) = 0x%x\n" % (str(tag.type), tag))
++ # t("while tag > 0 and segments < 64:")
++ while tag > 0 and segments < 64:
++ # t("segment = segment - tag")
++ segment = segment - tag
++ # debug_write("@@ segment = 0x%x\n" % segment)
++ # t("tag = (self.segmap_lo + segment).dereference() & 0xff")
++ tag = (self.segmap_lo + segment).dereference() & 0xff
++ # debug_write("@@ tag (%s) = 0x%x\n" % (str(tag.type), tag))
++ # t("segments += 1")
++ segments += 1
++ # t("if tag != 0:")
++ if tag != 0:
++ # t("return None")
++ return None
++ # debug_write("@@ lo = 0x%x\n" % self.lo)
++ # debug_write("@@ segment << self.log2_segment_size = 0x%x\n" % (segment << self.log2_segment_size))
++ # t("block_addr = self.lo + (segment << self.log2_segment_size)")
++ block_addr = self.lo + (segment << self.log2_segment_size)
++ # debug_write("@@ block_addr (%s) = 0x%x\n" % (str(block_addr.type), block_addr))
++ # t("heap_block = gdb.Value(block_addr).cast(CodeHeap.heap_block_type)")
++ heap_block = gdb.Value(block_addr).cast(CodeHeap.heap_block_type)
++ # debug_write("@@ heap_block (%s) = 0x%x\n" % (str(heap_block.type), heap_block))
++ # t("if heap_block['_header']['_used'] != 1:")
++ if heap_block['_header']['_used'] != 1:
++ # hmm, this is not meant to happen
++ # t("return None")
++ return None
++ # t("blob = (heap_block + 1).cast(CodeHeap.code_blob_type)")
++ blob = (heap_block + 1).cast(CodeHeap.code_blob_type)
++ return blob
++
++# class encapsulating access to code cache memory
++# this is essentially all static as per the JVM class
++
++class CodeCache:
++ # track whether we have successfully intiialized
++ class_inited = False
++ # static heap start, lo and hi bounds for code addresses
++ lo = 0
++ hi = 0
++ heap_count = 0
++ heap_list = []
++
++ @classmethod
++ def class_init(cls):
++ # t("CodeCache.class_init")
++ if cls.class_inited:
++ return
++ if cls.heap_list == []:
++ try:
++ heap = gdb.parse_and_eval("CodeCache::_heap")
++ # debug_write("@@ CodeCache::_heap (%s) = 0x%x\n" % (heap.type, heap))
++ if Types.as_long(heap) == 0:
++ raise gdb.GdbError("dbg.CodeCache.class_init : heap not ready!")
++ lo = heap['_memory']['_low_boundary']
++ # debug_write("@@ lo = 0x%x\n" % lo)
++ cls.lo = Types.as_long(lo)
++ if Types.as_long(lo) == 0:
++ raise gdb.GdbError("dbg.CodeCache.class_init : lo not ready!")
++ hi = heap['_memory']['_high_boundary']
++ # debug_write("@@ hi = 0x%x\n" % hi)
++ if Types.as_long(hi) == 0:
++ raise gdb.GdbError("dbg.CodeCache.class_init : hi not ready!")
++ cls.hi = Types.as_long(hi)
++ codeheap = CodeHeap(heap)
++ cls.heap_list.append(codeheap)
++ cls.heap_count = 1
++ except Exception as arg:
++ # debug_write("@@ oops %s\n" % arg)
++ cls.heap_list = []
++ cls.heap_count = 0
++ cls.lo = 0
++ cls.hi = 0
++ cls.class_inited = False
++ raise
++
++ cls.class_inited = True
++
++ @classmethod
++ def inrange(cls, pc):
++ # t("CodeCache.inrange")
++ # make sure we are initialized
++ cls.class_init()
++ # if we got here we can use the heaps
++ x = Types.as_long(pc)
++ # t("return cls.lo <= x and cls.hi > x")
++ return cls.lo <= x and cls.hi > x
++
++ @classmethod
++ def makestr(cls, charcnt, charptr):
++ # t("CodeCache.makestr")
++ #res = ""
++ #for i in range(0, charcnt):
++ # c = (charptr + i).dereference()
++ # res = ("%s%c" % (res, c))
++ #return res
++ # debug_write("charcnt = %d charptr = %s\n" % (charcnt, str(charptr)))
++ return charptr.string("ascii", "ignore", charcnt)
++
++ # given a PC find the associated OpenJDK code blob instance
++ @classmethod
++ def findblob(cls, pc):
++ # t("CodeCache.findblob")
++ # make sure we are initialized
++ cls.class_init()
++ # if we got here we can use the heaps
++ if not cls.inrange(pc):
++ raise gdb.GdbError("dbg.findblob : address 0x%x is not in range!" % pc)
++ for heap in cls.heap_list:
++ try:
++ # t("blob = heap.findblob(pc)")
++ blob = heap.findblob(pc)
++ except Exception as arg:
++ # debug_write("@@ findblob excepted %s\n" % str(arg))
++ # t("blob = None")
++ blob = None
++ # t("if blob != None:")
++ if blob != None:
++ # t("name=str(blob['_name'])")
++ name=str(blob['_name'])
++ # debug_write("@@ blob(0x%x) -> %s\n" % (pc, name))
++ # t("return blob")
++ return blob
++ # t("raise gdb.GdbError")
++ raise gdb.GdbError("dbg.findblob : no blob for inrange address 0x%x!" % pc)
++
++# abstract over some constants for stack frame layout
++
++class FrameConstants(object):
++ class_inited = False
++ _sender_sp_offset = 0
++ _interpreter_frame_sender_sp_offset = 0
++ _interpreter_frame_method_offset = 0
++ _interpreter_frame_bcx_offset = 0
++ @classmethod
++ def class_init(cls):
++ if cls.class_inited:
++ return
++ cls._interpreter_frame_sender_sp_offset = int(gdb.parse_and_eval("frame::interpreter_frame_sender_sp_offset"))
++ cls._sender_sp_offset = int(gdb.parse_and_eval("frame::sender_sp_offset"))
++ cls._interpreter_frame_method_offset = int(gdb.parse_and_eval("frame::interpreter_frame_method_offset"))
++ cls._interpreter_frame_bcx_offset = int(gdb.parse_and_eval("frame::interpreter_frame_bcx_offset"))
++ # only set if we got here with no errors
++ cls.class_inited = True
++ @classmethod
++ def sender_sp_offset(cls):
++ cls.class_init()
++ return cls._sender_sp_offset
++ @classmethod
++ def interpreter_frame_sender_sp_offset(cls):
++ cls.class_init()
++ return cls._interpreter_frame_sender_sp_offset
++ @classmethod
++ def interpreter_frame_method_offset(cls):
++ cls.class_init()
++ return cls._interpreter_frame_method_offset
++ @classmethod
++ def interpreter_frame_bcx_offset(cls):
++ cls.class_init()
++ return cls._interpreter_frame_bcx_offset
++
++# class which knows how to read a compressed stream of bytes n.b. at
++# the moment we only need to know how to read bytes and ints
++
++class CompressedStream:
++ # important constants for compressed stream read
++ BitsPerByte = 8
++ lg_H = 6
++ H = 1 << lg_H
++ L = (1 << BitsPerByte) - H
++ MAX_i = 4
++
++ def __init__(self, data):
++ # data is a gdb.Value of type 'byte *'
++ self.data = data
++ self.pos = 0
++ # retrieve the byte at offset pos
++ def at(self, pos):
++ return int(Types.load_byte(self.data + pos))
++ # read and return the next byte
++ def read(self):
++ # t("CompressedStream.read()")
++ pos = self.pos
++ b = self.at(pos)
++ self.pos = pos+1
++ return b
++ def read_int(self):
++ # t("CompressedStream.read_int()")
++ b0 = self.read()
++ # debug_write("b0 = 0x%x\n" % b0)
++ if b0 < CompressedStream.L:
++ return b0
++ return self.read_int_mb(b0)
++ def read_signed_int(self):
++ # t("CompressedStream.read_signed_int()")
++ return self.decode_sign(self.read_int())
++ def decode_sign(self, x):
++ # t("CompressedStream.decode_sign()")
++ return (x >> 1) ^ (0 - (x & 1))
++ def read_int_mb(self, b):
++ t# ("CompressedStream.read_int_mb()")
++ sum = b
++ pos = self.pos
++ # debug_write("pos = %d\n" % pos)
++ # debug_write("sum = 0x%x\n" % sum)
++ lg_H_i = CompressedStream.lg_H
++ i = 0
++ while (True):
++ b_i = self.at(pos + i)
++ # debug_write("b_%d = %d\n" % (i, b_i))
++ sum += (b_i << lg_H_i)
++ # debug_write("sum = 0x%x\n" % sum)
++ i += 1
++ if b_i < CompressedStream.L or i == CompressedStream.MAX_i:
++ self.pos = pos + i
++ # debug_write("self.pos = %d\n" % self.pos)
++ return sum
++ lg_H_i += CompressedStream.lg_H
++
++# class which knows how to find method and bytecode
++# index pairs from a pc associated with a given compiled
++# method. n.b. there may be more than one such pair
++# because of inlining.
++
++class MethodBCIReader:
++ pcdescstar_t = None
++ class_inited = False
++ @classmethod
++ def class_init(cls):
++ # t("MethodBCIReader.class_init")
++ if cls.class_inited:
++ return
++ # cache some useful types
++ cls.pcdesc_p = gdb.lookup_type("PcDesc").pointer()
++ cls.metadata_p = gdb.lookup_type("Metadata").pointer()
++ cls.metadata_pp = cls.metadata_p.pointer()
++ cls.method_p = gdb.lookup_type("Method").pointer()
++ cls.class_inited = True
++
++ @classmethod
++ def as_pcdesc_p(cls, val):
++ return Types.to_type(val, cls.pcdesc_p)
++
++ def __init__(self, nmethod, method):
++ # t("MethodBCIReader.__init__")
++ # ensure we have cached the necessary types
++ self.class_init()
++ # need to unpack pc scopes
++ self.nmethod = nmethod
++ self.method = method
++ # debug_write("nmethod (%s) = 0x%x\n" % (str(nmethod.type), Types.as_long(nmethod)))
++ code_begin_offset = Types.as_int(nmethod['_code_offset'])
++ code_end_offset = Types.as_int(nmethod['_data_offset'])
++ scopes_pcs_begin_offset = Types.as_int(nmethod['_scopes_pcs_offset'])
++ # debug_write("scopes_pcs_begin_offset = 0x%x\n" % scopes_pcs_begin_offset)
++ scopes_pcs_end_offset = Types.as_int(nmethod['_dependencies_offset'])
++ # debug_write("scopes_pcs_end_offset = 0x%x\n" % scopes_pcs_end_offset)
++ header_begin = Types.cast_bytep(nmethod)
++ self.code_begin = Types.as_long(header_begin + code_begin_offset)
++ self.code_end = Types.as_long(header_begin + code_end_offset)
++ self.scopes_pcs_begin = self.as_pcdesc_p(header_begin + scopes_pcs_begin_offset)
++ # debug_write("scopes_pcs_begin (%s) = 0x%x\n" % (str(self.scopes_pcs_begin.type), Types.as_long(self.scopes_pcs_begin)))
++ self.scopes_pcs_end = self.as_pcdesc_p(header_begin + scopes_pcs_end_offset)
++ # debug_write("scopes_pcs_end (%s) = 0x%x\n" % (str(self.scopes_pcs_end.type), Types.as_long(self.scopes_pcs_end)))
++
++ def find_pc_desc(self, pc_off):
++ lower = self.scopes_pcs_begin
++ upper = self.scopes_pcs_end - 1
++ if lower == upper:
++ return None
++ # non-empty table always starts with lower as a sentinel with
++ # offset -1 and will have at least one real offset beyond that
++ next = lower + 1
++ while next < upper and next['_pc_offset'] < pc_off:
++ next = next + 1
++ # use the last known bci below this pc
++ return next - 1
++
++ def pc_desc_to_method_bci_stack(self, pc_desc):
++ scope_decode_offset = Types.as_int(pc_desc['_scope_decode_offset'])
++ if scope_decode_offset == 0:
++ return [ { 'method': self.method, 'bci': 0 } ]
++ nmethod = self.nmethod
++ # debug_write("nmethod = 0x%x\n" % nmethod)
++ # debug_write("pc_desc = 0x%x\n" % Types.as_long(pc_desc))
++ base = Types.cast_bytep(nmethod)
++ scopes_data_offset = Types.as_int(nmethod['_scopes_data_offset'])
++ scopes_base = base + scopes_data_offset
++ # debug_write("scopes_base = 0x%x\n" % Types.as_long(scopes_base))
++ metadata_offset = Types.as_int(nmethod['_metadata_offset'])
++ metadata_base = Types.to_type(base + metadata_offset, self.metadata_pp)
++ # debug_write("metadata_base = 0x%x\n" % Types.as_long(metadata_base))
++ scope = scopes_base + scope_decode_offset
++ # debug_write("scope = 0x%x\n" % Types.as_long(scope))
++ stream = CompressedStream(scope)
++ # debug_write("stream = %s\n" % stream)
++ sender = stream.read_int()
++ # debug_write("sender = %s\n" % sender)
++ # method name is actually in metadata
++ method_idx = stream.read_int()
++ method_md = (metadata_base + (method_idx - 1)).dereference()
++ methodptr = Types.to_type(method_md, self.method_p)
++ method = Method(methodptr)
++ # bci is offset by -1 to allow range [-1, ..., MAX_UINT)
++ bci = stream.read_int() - 1
++ # debug_write("method,bci = %s,0x%x\n" % (method.get_name(), bci))
++ result = [ { 'method': method, 'bci': bci } ]
++ while sender > 0:
++ # debug_write("\nsender = 0x%x\n" % sender)
++ stream = CompressedStream(scopes_base + sender)
++ sender = stream.read_int()
++ method_idx = stream.read_int()
++ method_md = (metadata_base + (method_idx - 1)).dereference()
++ methodptr = Types.to_type(method_md, self.method_p)
++ method = Method(methodptr)
++ # bci is offset by -1 to allow range [-1, ..., MAX_UINT)
++ bci = stream.read_int() - 1
++ # debug_write("method,bci = %s,0x%x\n" % (method.get_name(), bci))
++ result.append( { 'method': method, 'bci': bci } )
++ return result
++
++
++ def pc_to_method_bci_stack(self, pc):
++ # need to search unpacked pc scopes
++ if pc < self.code_begin or pc >= self.code_end:
++ return None
++ pc_off = pc - self.code_begin
++ # debug_write("\npc_off = 0x%x\n" % pc_off)
++ pc_desc = self.find_pc_desc(pc_off)
++ if pc_desc is None:
++ return None
++ return self.pc_desc_to_method_bci_stack(pc_desc)
++
++# class which knows how to read a method's line
++# number table, translating bytecode indices to line numbers
++class LineReader:
++ # table is a gdb.Value of type 'byte *' (strictly 'u_char *' in JVM code)
++ def __init__(self, table):
++ # t("LineReader.init")
++ self.table = table
++ self.translations = {}
++ def bc_to_line(self, bci):
++ # t("LineReader.bc_to_line()")
++ try:
++ return self.translations[bci]
++ except Exception as arg:
++ line = self.compute_line(bci)
++ if line >= 0:
++ self.translations[bci] = line
++ return line
++ def compute_line(self, bci):
++ # t("LineReader.compute_line()")
++ # debug_write("table = 0x%x\n" % self.table)
++ bestline = -1
++ self.stream = CompressedStream(self.table)
++ self._bci = 0
++ self._line = 0
++ while self.read_pair():
++ nextbci = self._bci
++ nextline = self._line
++ if nextbci >= bci:
++ return nextline
++ else:
++ bestline = nextline
++ return bestline
++ def read_pair(self):
++ # t("LineReader.read_pair()")
++ next = self.stream.read()
++ # debug_write("next = 0x%x\n" % next)
++ if next == 0:
++ return False
++ if next == 0xff:
++ self._bci = self._bci + self.stream.read_signed_int()
++ self._line = self._line + self.stream.read_signed_int()
++ else:
++ self._bci = self._bci + (next >> 3)
++ self._line = self._line + (next & 0x7)
++ # debug_write("_bci = %d\n" % self._bci)
++ # debug_write("_line = %d\n" % self._line)
++ return True
++
++# class to provide access to data relating to a Method object
++class Method(object):
++ def __init__(self, methodptr):
++ self.methodptr = methodptr;
++ self.name = None
++ const_method = self.methodptr['_constMethod']
++ bcbase = Types.cast_bytep(const_method + 1)
++ bytecode_size = Types.as_int(const_method['_code_size'])
++ lnbase = Types.cast_bytep(bcbase + bytecode_size)
++ self.line_number_reader = LineReader(lnbase)
++
++ def get_name(self):
++ if self.name == None:
++ self.make_name(self.methodptr)
++ return self.name
++
++ def get_klass_path(self):
++ if self.name == None:
++ self.make_name(self.methodptr)
++ return self.klass_path
++
++ def get_line(self, bci):
++ if bci < 0:
++ bci = 0
++ return self.line_number_reader.bc_to_line(bci)
++
++ def make_name(self, methodptr):
++ const_method = methodptr['_constMethod']
++ constant_pool = const_method['_constants']
++ constant_pool_base = Types.cast_voidp((constant_pool + 1))
++ klass_sym = constant_pool['_pool_holder']['_name']
++ klass_name = klass_sym['_body'].cast(gdb.lookup_type("char").pointer())
++ klass_name_length = int(klass_sym['_length'])
++ klass_path = CodeCache.makestr(klass_name_length, klass_name)
++ self.klass_str = klass_path.replace("/", ".")
++ dollaridx = klass_path.find('$')
++ if dollaridx >= 0:
++ klass_path = klass_path[0:dollaridx]
++ self.klass_path = klass_path + ".java"
++ method_idx = const_method['_name_index']
++ method_sym = (constant_pool_base + (8 * method_idx)).cast(gdb.lookup_type("Symbol").pointer().pointer()).dereference()
++ method_name = method_sym['_body'].cast(gdb.lookup_type("char").pointer())
++ method_name_length = int(method_sym['_length'])
++ self.method_str = CodeCache.makestr(method_name_length, method_name)
++
++ sig_idx = const_method['_signature_index']
++ sig_sym = (constant_pool_base + (8 * sig_idx)).cast(gdb.lookup_type("Symbol").pointer().pointer()).dereference()
++ sig_name = sig_sym['_body'].cast(gdb.lookup_type("char").pointer())
++ sig_name_length = int(sig_sym['_length'])
++ sig_str = CodeCache.makestr(sig_name_length, sig_name)
++ self.sig_str = self.make_sig_str(sig_str)
++ self.name = self.klass_str + "." + self.method_str + self.sig_str
++
++ def make_sig_str(self, sig):
++ in_sym_name = False
++ sig_str = ""
++ prefix=""
++ for i, c in enumerate(sig):
++ if c == "(":
++ sig_str = sig_str + c
++ elif c == ")":
++ # ignore return type
++ return sig_str + c
++ elif in_sym_name == True:
++ if c == ";":
++ in_sym_name = False
++ elif c == "/":
++ sig_str = sig_str + "."
++ else:
++ sig_str = sig_str + c
++ elif c == "L":
++ sig_str = sig_str + prefix
++ prefix = ","
++ in_sym_name = True
++ elif c == "B":
++ sig_str = sig_str + prefix + "byte"
++ prefix = ","
++ elif c == "S":
++ sig_str = sig_str + prefix + "short"
++ prefix = ","
++ elif c == "C":
++ sig_str = sig_str + prefix + "char"
++ prefix = ","
++ elif c == "I":
++ sig_str = sig_str + prefix + "int"
++ prefix = ","
++ elif c == "J":
++ sig_str = sig_str + prefix + "long"
++ prefix = ","
++ elif c == "F":
++ sig_str = sig_str + prefix + "float"
++ prefix = ","
++ elif c == "D":
++ sig_str = sig_str + prefix + "double"
++ prefix = ","
++ elif c == "Z":
++ sig_str = sig_str + prefix + "boolean"
++ prefix = ","
++ return sig_str
++
++# This represents a method in a JIT frame for the purposes of
++# display. There may be more than one method associated with
++# a (compiled) frame because of inlining. The MethodInfo object
++# associated with a JIT frame creates a list of decorators.
++# Interpreted and stub MethodInfo objects insert only one
++# decorator. Compiled MethodInfo objects insert one for the
++# base method and one for each inlined method found at the
++# frame PC address.
++class OpenJDKFrameDecorator(FrameDecorator):
++ def __init__(self, base, methodname, filename, line):
++ super(FrameDecorator, self).__init__()
++ self._base = base
++ self._methodname = methodname
++ self._filename = filename
++ self._line = line
++
++ def function(self):
++ try:
++ # t("OpenJDKFrameDecorator.function")
++ return self._methodname
++ except Exception as arg:
++ gdb.write("!!! function oops !!! %s\n" % arg)
++ return None
++
++ def method_name(self):
++ return _methodname
++
++ def filename(self):
++ try:
++ return self._filename
++ except Exception as arg:
++ gdb.write("!!! filename oops !!! %s\n" % arg)
++ return None
++
++ def line(self):
++ try:
++ return self._line
++ except Exception as arg:
++ gdb.write("!!! line oops !!! %s\n" % arg)
++ return None
++
++# A frame filter for OpenJDK.
++class OpenJDKFrameFilter(object):
++ def __init__(self, unwinder):
++ self.name="OpenJDK"
++ self.enabled = True
++ self.priority = 100
++ self.unwinder = unwinder
++
++ def maybe_wrap_frame(self, frame):
++ # t("OpenJDKFrameFilter.maybe_wrap_frame")
++ if self.unwinder is None:
++ return [ frame ]
++ # t("unwindercache = self.unwinder.unwindercache")
++ unwindercache = self.unwinder.unwindercache
++ if unwindercache is None:
++ return [ frame ]
++ # t("base = frame.inferior_frame()")
++ base = frame.inferior_frame()
++ # t("sp = Types.as_long(base.read_register('rsp'))")
++ sp = base.read_register('rsp')
++ x = Types.as_long(sp)
++ # debug_write("@@ get info at unwindercache[0x%x]\n" % x)
++ try:
++ cache_entry = unwindercache[x]
++ except Exception as arg:
++ # n.b. no such entry throws an exception
++ # just ignore and use existing frame
++ return [ frame ]
++ try:
++ if cache_entry is None:
++ # debug_write("@@ lookup found no cache_entry\n")
++ return [ frame ]
++ elif cache_entry.codetype == "unknown":
++ # debug_write("@@ lookup found unknown cache_entry\n")
++ return [ frame ]
++ else:
++ # debug_write("@@ got cache_entry for blob 0x%x at unwindercache[0x%x]\n" % (cache_entry.blob, x))
++ method_info = cache_entry.method_info
++ if method_info == None:
++ return [ frame ]
++ else:
++ return method_info.decorate(frame)
++ except Exception as arg:
++ gdb.write("!!! maybe_wrap_frame oops !!! %s\n" % arg)
++ return [ frame ]
++
++ def flatten(self, list_of_lists):
++ return [x for y in list_of_lists for x in y ]
++
++ def filter(self, frame_iter):
++ # return map(self.maybe_wrap_frame, frame_iter)
++ return self.flatten( map(self.maybe_wrap_frame, frame_iter) )
++
++
++# A frame id class, as specified by the gdb unwinder API.
++class OpenJDKFrameId(object):
++ def __init__(self, sp, pc):
++ # t("OpenJDKFrameId.__init__")
++ self.sp = sp
++ self.pc = pc
++
++# class hierarchy to record details of different code blobs
++# the class implements functionality required by the frame decorator
++
++class MethodInfo(object):
++ def __init__(self, entry):
++ self.blob = entry.blob
++ self.pc = Types.as_long(entry.pc)
++ self.sp = Types.as_long(entry.sp)
++ if entry.bp is None:
++ self.bp = 0
++ else:
++ self.bp = Types.as_long(entry.bp)
++
++ def decorate(self, frame):
++ return [ frame ]
++
++# info for stub frame
++
++class StubMethodInfo(MethodInfo):
++ def __init__(self, entry, name):
++ super(StubMethodInfo, self).__init__(entry)
++ self.name = name
++
++ def decorate(self, frame):
++ return [ OpenJDKFrameDecorator(frame, self.name, None, None) ]
++
++# common info for compiled, native or interpreted frame
++class JavaMethodInfo(MethodInfo):
++
++ def __init__(self, entry):
++ super(JavaMethodInfo, self).__init__(entry)
++
++ def cache_method_info(self):
++ methodptr = self.get_methodptr()
++ self.method = Method(methodptr)
++
++ def get_method(self):
++ return self.method
++
++ def method_name(self):
++ return self.get_method().get_name()
++
++ def filename(self):
++ return self.get_method().get_klass_path()
++
++ def decorate(self, frame):
++ return [ OpenJDKFrameDecorator(frame, self.method_name(), self.filename(), None) ]
++
++# info for compiled frame
++
++class CompiledMethodInfo(JavaMethodInfo):
++
++ def __init__(self, entry):
++ # t("CompiledMethodInfo.__init__")
++ super(CompiledMethodInfo,self).__init__(entry)
++ blob = self.blob
++ nmethod = Types.to_type(blob, Types.nmethodp_t)
++ self.methodptr = nmethod['_method']
++ const_method = self.methodptr['_constMethod']
++ bcbase = Types.cast_bytep(const_method + 1)
++ header_begin = Types.cast_bytep(nmethod)
++ code_begin_offset = Types.as_int(nmethod['_code_offset'])
++ self.code_begin = Types.as_long(header_begin + code_begin_offset)
++ self.cache_method_info()
++ # get PC to BCI translator from the nmethod
++ self.bytecode_index_reader = MethodBCIReader(nmethod, self.method)
++ self.method_bci_stack = self.bytecode_index_reader.pc_to_method_bci_stack(self.pc)
++
++ # subclasses need to compute their method pointer
++
++ def get_methodptr(self):
++ return self.methodptr
++
++ def format_method_name(self, method, is_outer):
++ name = method.get_name()
++ if is_outer:
++ return ("[compiled offset=0x%x] %s" % (self.pc - self.code_begin, name))
++ else:
++ return ("[inlined] %s" % name)
++
++ def make_decorator(self, frame, pair, is_outer):
++ # t("make_decorator")
++ method = pair['method']
++ bci = pair['bci']
++ methodname = self.format_method_name(method, is_outer)
++ filename = method.get_klass_path()
++ line = method.get_line(bci)
++ if line < 0:
++ line = None
++ decorator = OpenJDKFrameDecorator(frame, methodname, filename, line)
++ return decorator
++
++ def decorate(self, frame):
++ if self.method_bci_stack == None:
++ return [ frame ]
++ else:
++ try:
++ decorators = []
++ pairs = self.method_bci_stack
++ # debug_write("converting method_bci_stack = %s\n" % self.method_bci_stack)
++ l = len(pairs)
++ for i in range(l):
++ pair = pairs[i]
++ # debug_write("decorating pair %s\n" % pair)
++ decorator = self.make_decorator(frame, pair, i == (l - 1))
++ decorators.append(decorator)
++ return decorators
++ except Exception as arg:
++ gdb.write("!!! decorate oops %s !!!\n" % arg)
++ return [ frame ]
++
++# info for native frame
++
++class NativeMethodInfo(JavaMethodInfo):
++
++ def __init__(self, entry):
++ # t("NativeMethodInfo.__init__")
++ super(NativeMethodInfo,self).__init__(entry)
++ blob = self.blob
++ nmethod = Types.to_type(blob, Types.nmethodp_t)
++ self.methodptr = nmethod['_method']
++ const_method = self.methodptr['_constMethod']
++ bcbase = Types.cast_bytep(const_method + 1)
++ header_begin = Types.cast_bytep(nmethod)
++ code_begin_offset = Types.as_int(nmethod['_code_offset'])
++ self.code_begin = Types.as_long(header_begin + code_begin_offset)
++ self.cache_method_info()
++
++ # subclasses need to compute their method pointer
++
++ def get_methodptr(self):
++ return self.methodptr
++
++ def format_method_name(self, method):
++ name = method.get_name()
++ return ("[native offset=0x%x] %s" % (self.pc - self.code_begin, name))
++
++ def method_name(self):
++ return self.format_method_name(self.method)
++
++# info for interpreted frame
++
++class InterpretedMethodInfo(JavaMethodInfo):
++
++ def __init__(self, entry, bcp):
++ super(InterpretedMethodInfo,self).__init__(entry)
++ # interpreter frames store methodptr in slot 3
++ methodptr_offset = FrameConstants.interpreter_frame_method_offset() * 8
++ methodptr_addr = gdb.Value((self.bp + methodptr_offset) & 0xffffffffffffffff)
++ methodptr_slot = methodptr_addr.cast(gdb.lookup_type("Method").pointer().pointer())
++ self.methodptr = methodptr_slot.dereference()
++ # bytecode immediately follows const method
++ const_method = self.methodptr['_constMethod']
++ bcbase = Types.cast_bytep(const_method + 1)
++ # debug_write("@@ bcbase = 0x%x\n" % Types.as_long(bcbase))
++ bcp_offset = FrameConstants.interpreter_frame_bcx_offset() * 8
++ if bcp is None:
++ # interpreter frames store bytecodeptr in slot 7
++ bcp_addr = gdb.Value((self.bp + bcp_offset) & 0xffffffffffffffff)
++ bcp_val = Types.cast_bytep(Types.load_ptr(bcp_addr))
++ else:
++ bcp_val = Types.cast_bytep(bcp)
++ # sanity check the register value -- it is sometimes off
++ # when returning from a call out
++ bcoff = Types.as_long(bcp_val - bcbase)
++ if bcoff < 0 or bcoff >= 0x10000:
++ # use the value in the frame slot
++ bcp_addr = gdb.Value((self.bp + bcp_offset) & 0xffffffffffffffff)
++ bcp_val = Types.cast_bytep(Types.load_ptr(bcp_addr))
++ self.bcoff = Types.as_long(bcp_val - bcbase)
++ # debug_write("@@ bcoff = 0x%x\n" % self.bcoff)
++ # line number table immediately following bytecode
++ bytecode_size = Types.as_int(const_method['_code_size'])
++ self.is_native = (bytecode_size == 0)
++ # n.b. data in compressed line_number_table block is u_char
++ # debug_write("bytecode_size = 0x%x\n" % bytecode_size)
++ lnbase = Types.cast_bytep(bcbase + bytecode_size)
++ # debug_write("lnbase = 0x%x\n" % Types.as_long(lnbase))
++ self.line_number_reader = LineReader(lnbase)
++ self.cache_method_info()
++
++ def get_methodptr(self):
++ return self.methodptr
++
++ def format_method_name(self, method):
++ name = method.get_name()
++ if self.is_native:
++ return "[native] " + name
++ else:
++ return ("[interpreted: bc = %d] " % self.bcoff) + name
++
++ def line(self):
++ line = self.line_number_reader.bc_to_line(self.bcoff)
++ # debug_write("bc_to_line(%d) = %d\n" % (self.bcoff, line))
++ if line < 0:
++ line = None
++ return line
++
++ def decorate(self, frame):
++ method = self.get_method()
++ return [ OpenJDKFrameDecorator(frame, self.format_method_name(method), method.get_klass_path(), self.line()) ]
++
++
++class OpenJDKUnwinderCacheEntry(object):
++ def __init__(self, blob, sp, pc, bp, bcp, name, codetype):
++ # t("OpenJDKUnwinderCacheEntry.__init__")
++ self.blob = blob
++ self.sp = sp
++ self.pc = pc
++ self.bp = bp
++ self.codetype = codetype
++ try:
++ if codetype == "compiled":
++ self.method_info = CompiledMethodInfo(self)
++ elif codetype == "native":
++ self.method_info = NativeMethodInfo(self)
++ elif codetype == "interpreted":
++ self.method_info = InterpretedMethodInfo(self, bcp)
++ elif codetype == "stub":
++ self.method_info = StubMethodInfo(self, name)
++ else:
++ self.method_info = None
++ except Exception as arg:
++ gdb.write("!!! failed to cache info for %s frame [pc: 0x%x sp:0x%x bp 0x%x] !!!\n!!! %s !!!\n" % (codetype, pc, sp, bp, arg))
++ self.method_info = None
++
++# an unwinder class, an instance of which can be registered with gdb
++# to handle unwinding of frames.
++
++class OpenJDKUnwinder(Unwinder):
++ def __init__(self):
++ # t("OpenJDKUnwinder.__init__")
++ super(OpenJDKUnwinder, self).__init__("OpenJDKUnwinder")
++ # blob name will be in format '0xHexDigits "AlphaNumSpaces"'
++ self.matcher=re.compile('^0x[a-fA-F0-9]+ "(.*)"$')
++ self.unwindercache = {}
++ self.invocations = {}
++
++ # the method that gets called by the pyuw_sniffer
++ def __call__(self, pending_frame):
++ # sometimes when we call into python gdb routines
++ # the call tries to re-establish the frame and ends
++ # up calling the frame sniffer recursively
++ #
++ # so use a list keyed by thread to avoid recursive calls
++ # t("OpenJDKUnwinder.__call__")
++ thread = gdb.selected_thread()
++ if self.invocations.get(thread) != None:
++ # debug_write("!!! blocked %s !!!\n" % str(thread))
++ return None
++ try:
++ # debug_write("!!! blocking %s !!!\n" % str(thread))
++ self.invocations[thread] = thread
++ result = self.call_sub(pending_frame)
++ # debug_write("!!! unblocking %s !!!\n" % str(thread))
++ self.invocations[thread] = None
++ return result
++ except Exception as arg:
++ gdb.write("!!! __call__ oops %s !!!\n" % arg)
++ # debug_write("!!! unblocking %s !!!\n" % str(thread))
++ self.invocations[thread] = None
++ return None
++
++ def call_sub(self, pending_frame):
++ # t("OpenJDKUnwinder.__call_sub__")
++ # debug_write("@@ reading pending frame registers\n")
++ pc = pending_frame.read_register('rip')
++ # debug_write("@@ pc = 0x%x\n" % Types.as_long(pc))
++ sp = pending_frame.read_register('rsp')
++ # debug_write("@@ sp = 0x%x\n" % Types.as_long(sp))
++ bp = pending_frame.read_register('rbp')
++ # debug_write("@@ bp = 0x%x\n" % Types.as_long(bp))
++ try:
++ if not CodeCache.inrange(pc):
++ # t("not CodeCache.inrange(0x%x)\n" % pc)
++ return None
++ except Exception as arg:
++ # debug_write("@@ %s\n" % arg)
++ return None
++ if _dump_frame:
++ debug_write(" pc = 0x%x\n" % Types.as_long(pc))
++ debug_write(" sp = 0x%x\n" % Types.as_long(sp))
++ debug_write(" bp = 0x%x\n" % Types.as_long(bp))
++ # this is a Java frame so we need to return unwind info
++ #
++ # the interpreter keeps the bytecode pointer (bcp) in a
++ # register and saves it to the stack when it makes a call to
++ # another Java method or to C++. if the current frame has a
++ # bcp register value then we pass it in case the pending frame
++ # is an intrepreter frame. that ensures we use the most up to
++ # date bcp when the inferior has stopped at the top level in a
++ # Java interpreted frame. it also saves us doing a redundant
++ # stack read when the pending frame sits below a non-JITted
++ # (C++) frame. n.b. if the current frame is a JITted frame
++ # (i.e. one that we have already unwound) then rbp will not be
++ # present. that's ok because the frame decorator can still
++ # find the latest bcp value on the stack.
++ bcp = pending_frame.read_register('r13')
++ try:
++ # convert returned value to a python int to force a check that
++ # the register is defined. if not this will except
++ bcp = gdb.Value(int(bcp))
++ # debug_write("@@ bcp = 0x%x\n" % Types.as_long(bcp))
++ except Exception as arg:
++ # debug_write("@@ !!! call_sub oops %s !!! \n" % arg)
++ bcp = None
++ # debug_write("@@ bcp = None\n")
++ # t("blob = CodeCache.findblob(pc)")
++ blob = CodeCache.findblob(pc)
++ # t("if blob is None:")
++ if blob is None:
++ # t("return None")
++ return None
++ # if the blob is an nmethod then we use the frame
++ # size to identify the frame base otherwise we
++ # use the value in rbp
++ # t("name = str(blob['_name'])")
++ name = str(blob['_name'])
++ # blob name will be in format '0xHexDigits "AlphaNumSpaces"'
++ # and we just want the bit between the quotes
++ m = self.matcher.match(name)
++ if not m is None:
++ # debug_write("@@ m.group(1) == %s\n" % m.group(1))
++ name = m.group(1)
++ if name == "nmethod":
++ # debug_write("@@ compiled %s\n" % name)
++ codetype = 'compiled'
++ # TODO -- need to check if frame is complete
++ # i.e. if ((char *)pc - (char *)blob) > blob['_header_size'] + blob['_code_offset'] + blob['_frame_complete_offset']
++ # if not then we have not pushed a frame.
++ # what do we do then? use SP as BP???
++ frame_size = blob['_frame_size']
++ # debug_write("@@ frame_size = 0x%x\n" % int(frame_size))
++ # n.b. frame_size includes stacked rbp and rip hence the -2
++ bp = sp + ((frame_size - 2) * 8)
++ # debug_write("@@ revised bp = 0x%x\n" % Types.as_long(bp))
++ elif name == "native nmethod":
++ # debug_write("@@ native %s \n" % name)
++ codetype = "native"
++ elif name == "Interpreter":
++ # debug_write("@@ interpreted %s\n" %name)
++ codetype = "interpreted"
++ elif name[:4] == "Stub":
++ # debug_write("@@ stub %s\n" % name)
++ codetype = "stub"
++ else:
++ # debug_write("@@ unknown %s\n" % name)
++ codetype = "unknown"
++ # cache details of the current frame
++ x = Types.as_long(sp)
++ # debug_write("@@ add %s cache entry for blob 0x%x at unwindercache[0x%x]\n" % (codetype, blob, x))
++ self.unwindercache[x] = OpenJDKUnwinderCacheEntry(blob, sp, pc, bp, bcp, name, codetype)
++ # t("next_bp = Types.load_long(bp)")
++ next_bp = Types.load_long(bp)
++ # t("next_pc = Types.load_long(bp + 8)")
++ next_pc = Types.load_long(bp + 8)
++ # next_sp is normally just 2 words below current bp
++ # but for interpreted frames we need to skip locals
++ # so we pull caller_sp from the frame
++ if codetype == "interpreted":
++ interpreter_frame_sender_sp_offset = FrameConstants.interpreter_frame_sender_sp_offset() * 8
++ # interpreter frames store sender sp in slot 1
++ next_sp = Types.load_long(bp + interpreter_frame_sender_sp_offset)
++ else:
++ sender_sp_offset = FrameConstants.sender_sp_offset() * 8
++ next_sp = bp + sender_sp_offset
++ # create unwind info for this frame
++ # t("frameid = OpenJDKFrameId(...)")
++ frameid = OpenJDKFrameId(Types.to_voidp(next_sp),
++ Types.to_type(next_pc, pc.type))
++ # debug_write("@@ created frame id\n")
++ # t("unwind_info = pending_frame.create_unwind_info(frameid)")
++ unwind_info = pending_frame.create_unwind_info(frameid)
++ # debug_write("@@ created unwind info\n")
++ # debug_write("@@ next_bp = 0x%x\n" % next_bp)
++ # debug_write("@@ next_pc = 0x%x\n" % next_pc)
++ # debug_write("@@ next_sp = 0x%x\n" % next_sp)
++ # we must calculate pc, sp and bp.
++ #
++ # for now we only add the minimum of registers that we know
++ # are valid.
++ unwind_info.add_saved_register('rip', next_pc)
++ unwind_info.add_saved_register('rsp', next_sp)
++ unwind_info.add_saved_register('rbp', next_bp)
++ if _dump_frame:
++ debug_write("next pc = 0x%x\n" % Types.as_long(next_pc))
++ debug_write("next sp = 0x%x\n" % Types.as_long(next_sp))
++ debug_write("next bp = 0x%x\n" % Types.as_long(next_bp))
++ # t("return unwind_info")
++ return unwind_info
++
++# register the unwinder globally [probably really needs to be
++# registered solely with libjvm.so]
++def register_unwinder():
++ unwinder = None
++ if _have_unwinder:
++ unwinder = OpenJDKUnwinder()
++ gdb.unwinder.register_unwinder(None, unwinder, replace=True)
++ filt = OpenJDKFrameFilter(unwinder)
++ gdb.frame_filters[filt.name] = filt
++
++register_unwinder()
--- /dev/null
--- /dev/null
++# @(#)font.properties.ja.linux 1.7 02/03/07
++#
++# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
++#
++
++# Component Font Mappings
++#
++serif.0=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
++serif.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++serif.italic.0=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1
++serif.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++serif.bold.0=-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1
++serif.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++serif.bolditalic.0=-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1
++serif.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++sansserif.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
++sansserif.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++sansserif.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
++sansserif.italic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++sansserif.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
++sansserif.bold.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++sansserif.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
++sansserif.bolditalic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++monospaced.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++monospaced.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++monospaced.italic.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++monospaced.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++monospaced.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++monospaced.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++monospaced.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++monospaced.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialog.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
++dialog.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialog.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
++dialog.italic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialog.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
++dialog.bold.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialog.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
++dialog.bolditalic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialoginput.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++dialoginput.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialoginput.italic.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++dialoginput.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialoginput.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++dialoginput.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialoginput.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++dialoginput.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++# Missing Glyph Character
++#
++default.char=274f
++
++# Component Font Character Encodings
++#
++fontcharset.serif.0=sun.io.CharToByteISO8859_1
++fontcharset.serif.1=sun.awt.motif.CharToByteX11JIS0208
++
++fontcharset.sansserif.0=sun.io.CharToByteISO8859_1
++fontcharset.sansserif.1=sun.awt.motif.CharToByteX11JIS0208
++
++fontcharset.monospaced.0=sun.io.CharToByteISO8859_1
++fontcharset.monospaced.1=sun.awt.motif.CharToByteX11JIS0208
++
++fontcharset.dialog.0=sun.io.CharToByteISO8859_1
++fontcharset.dialog.1=sun.awt.motif.CharToByteX11JIS0208
++
++fontcharset.dialoginput.0=sun.io.CharToByteISO8859_1
++fontcharset.dialoginput.1=sun.awt.motif.CharToByteX11JIS0208
++
++# Exclusion Ranges
++#
++
++# XFontSet Information
++#
++fontset.serif.plain=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.serif.italic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.serif.bold=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.serif.bolditalic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.sansserif.plain=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.sansserif.italic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.sansserif.bold=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.sansserif.bolditalic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.monospaced.plain=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.monospaced.italic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.monospaced.bold=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.monospaced.bolditalic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialog.italic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialog.bold=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialog.bolditalic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialog.plain=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialoginput.italic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialoginput.bold=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialoginput.bolditalic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialoginput.plain=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.default=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
--- /dev/null
--- /dev/null
++# @(#)font.properties.ja.linux 1.7 02/03/07
++#
++# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
++#
++
++# Component Font Mappings
++#
++serif.0=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
++serif.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++serif.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++serif.italic.0=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1
++serif.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++serif.italic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++serif.bold.0=-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1
++serif.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++serif.bold.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++serif.bolditalic.0=-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1
++serif.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++serif.bolditalic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++sansserif.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
++sansserif.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++sansserif.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++sansserif.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
++sansserif.italic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++sansserif.italic.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++sansserif.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
++sansserif.bold.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++sansserif.bold.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++sansserif.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
++sansserif.bolditalic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++sansserif.bolditalic.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++monospaced.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++monospaced.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++monospaced.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++monospaced.italic.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++monospaced.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++monospaced.italic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++monospaced.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++monospaced.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++monospaced.bold.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++monospaced.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++monospaced.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++monospaced.bolditalic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialog.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
++dialog.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialog.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialog.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
++dialog.italic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialog.italic.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialog.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
++dialog.bold.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialog.bold.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialog.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
++dialog.bolditalic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialog.bolditalic.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialoginput.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++dialoginput.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialoginput.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialoginput.italic.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++dialoginput.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialoginput.italic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialoginput.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++dialoginput.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialoginput.bold.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++dialoginput.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
++dialoginput.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialoginput.bolditalic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++# Missing Glyph Character
++#
++default.char=274f
++
++# Component Font Character Encodings
++#
++fontcharset.serif.0=sun.io.CharToByteISO8859_1
++fontcharset.serif.1=sun.awt.motif.CharToByteX11JIS0208
++fontcharset.serif.2=sun.awt.motif.CharToByteX11JIS0208
++
++fontcharset.sansserif.0=sun.io.CharToByteISO8859_1
++fontcharset.sansserif.1=sun.awt.motif.CharToByteX11JIS0208
++fontcharset.sansserif.2=sun.awt.motif.CharToByteX11JIS0208
++
++fontcharset.monospaced.0=sun.io.CharToByteISO8859_1
++fontcharset.monospaced.1=sun.awt.motif.CharToByteX11JIS0208
++fontcharset.monospaced.2=sun.awt.motif.CharToByteX11JIS0208
++
++fontcharset.dialog.0=sun.io.CharToByteISO8859_1
++fontcharset.dialog.1=sun.awt.motif.CharToByteX11JIS0208
++fontcharset.dialog.2=sun.awt.motif.CharToByteX11JIS0208
++
++fontcharset.dialoginput.0=sun.io.CharToByteISO8859_1
++fontcharset.dialoginput.1=sun.awt.motif.CharToByteX11JIS0208
++fontcharset.dialoginput.2=sun.awt.motif.CharToByteX11JIS0208
++
++# Exclusion Ranges
++#
++
++# XFontSet Information
++#
++fontset.serif.plain=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.serif.italic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.serif.bold=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.serif.bolditalic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.sansserif.plain=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.sansserif.italic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.sansserif.bold=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.sansserif.bolditalic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.monospaced.plain=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.monospaced.italic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.monospaced.bold=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.monospaced.bolditalic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialog.italic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialog.bold=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialog.bolditalic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialog.plain=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialoginput.italic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialoginput.bold=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialoginput.bolditalic=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.dialoginput.plain=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
++fontset.default=\
++-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
++-b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
++-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
++-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++tarballs="corba.tar.gz hotspot.tar.gz jaxp.tar.gz jaxws.tar.gz jdk.tar.gz langtools.tar.gz openjdk.tar.gz"
++# AArch64 hotspot
++aarch64_hsname=f50993b6c38d
++tarballs="$tarballs $aarch64_hsname.tar.gz"
++jamvmtb=jamvm-ac22c9948434e528ece451642b4ebde40953ee7e.tar.gz
++tarballdir=7u55
++version=7u55-2.4.7
++base=openjdk-7
++pkgdir=$base-$version
++origtar=${base}_${version}.orig.tar.gz
++
++icedtea_checkout=icedtea7-2.4.7
++debian_checkout=openjdk7
++
++if [ -d $pkgdir ]; then
++ echo directory $pkgdir already exists
++ exit 1
++fi
++
++if [ -d $pkgdir.orig ]; then
++ echo directory $pkgdir.orig already exists
++ exit 1
++fi
++
++if [ -f $origtar ]; then
++ echo "Using existing $origtar"
++ tar xf $origtar
++ if [ -d $pkgdir.orig ]; then
++ mv $pkgdir.orig $pkgdir
++ fi
++ tar -c -f - -C $icedtea_checkout . | tar -x -f - -C $pkgdir
++ rm -rf $pkgdir/.hg
++else
++ echo "Creating new $pkgdir.orig/"
++ rm -rf $pkgdir.orig
++ mkdir -p $pkgdir.orig
++ case "$base" in
++ openjdk*)
++ for i in $tarballs; do
++ cp -p $tarballdir/$i $pkgdir.orig/
++ done
++ cp -p $tarballdir/$jamvmtb $pkgdir.orig/
++ ;;
++ esac
++ tar -c -f - -C $icedtea_checkout . | tar -x -f - -C $pkgdir.orig
++ (
++ cd $pkgdir.orig
++ sh autogen.sh
++ rm -rf autom4te.cache
++ )
++ cp -a $pkgdir.orig $pkgdir
++ rm -rf $pkgdir.orig/.hg
++fi
++
++echo "Build debian diff in $pkgdir/"
++cp -a $debian_checkout $pkgdir/debian
++(
++ cd $pkgdir
++ #bash debian/update-shasum.sh
++ #bash debian/update-hgrev.sh
++ ls
++ patch -p1 < debian/patches/icedtea-patch.diff
++ sh autogen.sh
++ rm -rf autom4te.cache
++ echo "aarch64 http://openjdk.linaro.org/hotspot $aarch64_hsname $(sha256sum $aarch64_hsname.tar.gz) $aarch64_hsname.tar.gz" >> hotspot.map
++)
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++if [ ! -f "$1" ]; then
++ echo "does not exist: $1"
++ exit 1
++fi
++
++jdkdir=$(tar tf $1 | head -1 | sed 's,/.*,,')
++echo $jdkdir
++
++dist=$(lsb_release -is)
++
++echo "not needed anymore. 2.4.4 has both jdk and langtools cleaned up"
++exit 1
++
++# Untar openjdk source zip.
++rm -rf openjdk
++case "$1" in
++ *.zip) unzip -q -x $1 ;;
++ *.tar*) tar xf $1;;
++esac
++
++case "$1" in
++ *jdk*)
++ echo "Cleanup jdk tarball..."
++ # Remove J2DBench sources, some of which have questionable license
++ # headers.
++ rm -rf \
++ $jdkdir/src/share/demo/java2d/J2DBench
++
++ # binary files
++ rm -f \
++ $jdkdir/test/sun/net/idn/*.spp
++
++ rm -rf \
++ $jdkdir/test/sun/security/pkcs11/nss/lib/*
++
++ rm -f \
++ $jdkdir/test/java/util/Locale/data/deflocale.sh \
++ $jdkdir/test/java/util/Locale/data/deflocale.rhel5 \
++ $jdkdir/test/java/util/Locale/data/deflocale.rhel5.fmtasdefault \
++ $jdkdir/test/java/util/Locale/data/deflocale.sol10.fmtasdefault \
++ $jdkdir/test/java/util/Locale/data/deflocale.win7 \
++ $jdkdir/test/java/util/Locale/data/deflocale.win7.fmtasdefault
++;;
++
++ *langtools*)
++ echo "Cleanup langtools tarball..."
++ rm -rf $jdkdir/test/tools/javac/T5090006/broken.jar
++;;
++
++esac
++
++# Create new zip with new name.
++
++NEW_ZIP=$(echo $1 | sed -e 's/\.tar.gz/-dfsg.tar.gz/;s/\.zip/-dfsg.tar.gz/')
++GZIP=-9v tar -cz -f $NEW_ZIP $jdkdir
++
++# Remove old unzipped openjdk dir.
++rm -rf $jdkdir
--- /dev/null
--- /dev/null
++# jvm.cfg-default - default jvm configuration which is used if no jvm.cfg
++# is found. After unpacking the file jvm.cfg doesn't exist yet (config file),
++# in this case use this file instead, so that the VM can be used before
++# configuration of the runtime package.
++-client KNOWN
++-server ALIASED_TO -client
--- /dev/null
--- /dev/null
++# jvm.cfg-default - default jvm configuration which is used if no jvm.cfg
++# is found. After unpacking the file jvm.cfg doesn't exist yet (config file),
++# in this case use this file instead, so that the VM can be used before
++# configuration of the runtime package.
++-server KNOWN
--- /dev/null
--- /dev/null
++javax.xml.xpath.XPath
++javax.xml.parsers.DocumentBuilder.PR27864
++javax.xml.parsers.DocumentBuilder.parseSimpleXML
++javax.crypto.spec.TestOfPBEKeySpec
++javax.crypto.spec.TestOfSecretKeySpec
++javax.accessibility.AccessibleContext.getAccessibleRelationSet
++javax.imageio.plugins.jpeg.TestJPEGImageReadParam
++javax.imageio.plugins.jpeg.TestJPEGHuffmanTable
++javax.imageio.plugins.jpeg.TestJPEGQTable
++javax.imageio.stream.IIOByteBuffer.setOffset
++javax.imageio.stream.IIOByteBuffer.setLength
++javax.imageio.stream.IIOByteBuffer.setData
++javax.imageio.spi.ServiceRegistry.getServiceProviderByClass
++javax.imageio.spi.ServiceRegistry.deregisterAll
++javax.imageio.spi.ServiceRegistry.getCategories
++javax.imageio.spi.ServiceRegistry.lookupProviders
++javax.imageio.spi.ServiceRegistry.registerServiceProvider
++javax.imageio.spi.IIOServiceProvider.getVersion
++javax.imageio.spi.IIOServiceProvider.getVendorName
++javax.imageio.spi.ImageOutputStreamSpi.ImageOutputStreamSpi
++javax.imageio.spi.ImageOutputStreamSpi.needsCacheFile
++javax.imageio.spi.ImageOutputStreamSpi.canUseCacheFile
++javax.imageio.spi.ImageReaderWriterSpi.getNativeImageMetadataFormatName
++javax.imageio.spi.ImageReaderWriterSpi.getFileSuffixes
++javax.imageio.spi.ImageReaderWriterSpi.getExtraImageMetadataFormatNames
++javax.imageio.spi.ImageReaderWriterSpi.getPluginClassName
++javax.imageio.spi.ImageReaderWriterSpi.getNativeStreamMetadataFormatName
++javax.imageio.spi.ImageReaderWriterSpi.getExtraStreamMetadataFormatNames
++javax.imageio.spi.ImageReaderWriterSpi.getMIMETypes
++javax.imageio.spi.ImageReaderWriterSpi.isStandardImageMetadataFormatSupported
++javax.imageio.spi.ImageReaderWriterSpi.getFormatNames
++javax.imageio.spi.ImageReaderWriterSpi.isStandardStreamMetadataFormatSupported
++javax.imageio.spi.ImageInputStreamSpi.ImageInputStreamSpi
++javax.imageio.spi.ImageInputStreamSpi.needsCacheFile
++javax.imageio.spi.ImageInputStreamSpi.canUseCacheFile
++javax.imageio.spi.ImageTranscoderSpi.ImageTranscoderSpi
++javax.imageio.spi.IIORegistry.getDefaultInstance
++javax.naming.CompoundName.simple
++javax.naming.directory.BasicAttribute.Enumerate
++javax.naming.CompositeName.composite
++javax.management.ObjectName.apply
++javax.management.ObjectName.Parsing
++javax.management.ObjectName.ParsingJDK6
++javax.management.ObjectName.applyJDK6
++javax.management.openmbean.ArrayType.IsValue
++javax.management.openmbean.ArrayType.Constructor2
++javax.management.openmbean.ArrayType.Equals
++javax.management.openmbean.ArrayType.IsPrimitiveArray
++javax.management.openmbean.ArrayType.GetArrayType
++javax.management.openmbean.ArrayType.HashCode
++javax.management.openmbean.ArrayType.GetPrimitiveArrayType
++javax.management.openmbean.ArrayType.Constructor1
++javax.management.openmbean.CompositeDataInvocationHandler.Test
++javax.management.MBeanServerPermission.Constructor
++javax.security.auth.login.TestOfPR25202
++javax.print.SimpleDoc.constructor
++javax.print.SimpleDoc.getStreamForBytes
++javax.print.SimpleDoc.getAttributes
++javax.print.SimpleDoc.getReaderForText
++javax.print.DocFlavor.parseMimeType
++javax.print.attribute.TextSyntax.constructors
++javax.print.attribute.ResolutionSyntax.simple
++javax.print.attribute.EnumSyntax.serialize
++javax.print.attribute.EnumSyntax.equals
++javax.print.attribute.AttributeSetUtilities.simple
++javax.print.attribute.Size2DSyntax.simple
++javax.print.attribute.SetOfIntegerSyntax.Simple
++javax.print.attribute.HashAttributeSet.populatedSet
++javax.print.attribute.HashAttributeSet.nullTests
++javax.print.attribute.HashAttributeSet.emptySet
++javax.print.attribute.standard.MediaSize.userClass
++javax.swing.JWindow.isRootPaneCheckingEnabled
++javax.swing.JSplitPane.setComponent
++javax.swing.JSplitPane.setResizeWeight
++javax.swing.JSplitPane.getDividerLocation
++javax.swing.JSplitPane.getInputMap
++javax.swing.JSplitPane.getActionMap
++javax.swing.JSplitPane.paramString
++javax.swing.JSplitPane.Constructor
++javax.swing.JOptionPane.getInputMap
++javax.swing.JTabbedPane.getInputMap
++javax.swing.JTabbedPane.Mnemonic
++javax.swing.JTabbedPane.remove
++javax.swing.JToggleButton.constructor
++javax.swing.JToggleButton.actionEvent
++javax.swing.JToggleButton.isFocusable
++javax.swing.JToggleButton.uidelegate
++javax.swing.JToggleButton.getActionCommand
++javax.swing.JToggleButton.model
++javax.swing.JToggleButton.click
++javax.swing.text.View.getResizeWeight
++javax.swing.text.View.getMaximumSpan
++javax.swing.text.View.getMinimumSpan
++javax.swing.text.View.getAlignment
++javax.swing.text.GapContent.getString
++javax.swing.text.GapContent.GapContentTest
++javax.swing.text.GapContent.length
++javax.swing.text.GapContent.constructors
++javax.swing.text.GapContent.insertString
++javax.swing.text.GapContent.getChars
++javax.swing.text.GapContent.PositionTest
++javax.swing.text.GapContent.remove
++javax.swing.text.ElementIterator.ElementIteratorTest
++javax.swing.text.AbstractDocument.BranchElement.getStartOffset
++javax.swing.text.AbstractDocument.BranchElement.getElementIndexNullPointer
++javax.swing.text.AbstractDocument.BranchElement.BranchElementTest
++javax.swing.text.AbstractDocument.BranchElement.getElementIndex
++javax.swing.text.AbstractDocument.LeafElement.getStartOffset
++javax.swing.text.AbstractDocument.getDocumentProperties
++javax.swing.text.AbstractDocument.ElementChange2
++javax.swing.text.AbstractDocument.AbstractDocumentTest
++javax.swing.text.AbstractDocument.ElementChange
++javax.swing.text.AbstractDocument.filterTest
++javax.swing.text.MaskFormatter.MaskFormatterTest
++javax.swing.text.DefaultFormatter.getValueClass
++javax.swing.text.PlainDocument.getRootElements
++javax.swing.text.PlainDocument.getDocumentProperties
++javax.swing.text.PlainDocument.removeJoinesLines
++javax.swing.text.PlainDocument.multipleLeafs
++javax.swing.text.PlainDocument.getText
++javax.swing.text.PlainDocument.getLength
++javax.swing.text.PlainDocument.createPosition
++javax.swing.text.PlainDocument.insertUpdate
++javax.swing.text.PlainDocument.insertString
++javax.swing.text.PlainDocument.PlainDocumentTest
++javax.swing.text.AttributeSet.isEqual
++javax.swing.text.Segment.clone
++javax.swing.text.Segment.first
++javax.swing.text.Segment.setIndex
++javax.swing.text.Segment.last
++javax.swing.text.Segment.getIndex
++javax.swing.text.Segment.current
++javax.swing.text.Segment.next
++javax.swing.text.Segment.isPartialReturn
++javax.swing.text.Segment.getEndIndex
++javax.swing.text.Segment.setPartialReturn
++javax.swing.text.Segment.getBeginIndex
++javax.swing.text.Segment.constructors
++javax.swing.text.Segment.toString
++javax.swing.text.Segment.previous
++javax.swing.text.TextAction.augmentList
++javax.swing.text.TabSet.getTab
++javax.swing.text.TabSet.constructor
++javax.swing.text.TabSet.getTabCount
++javax.swing.text.TabSet.getTabIndex
++javax.swing.text.TabSet.getTabIndexAfter
++javax.swing.text.TabSet.equals
++javax.swing.text.TabSet.toString
++javax.swing.text.html.HTML.HTML_Test
++javax.swing.text.html.HTMLDocument.FindById
++javax.swing.text.html.parser.Entity.Entity_Test
++javax.swing.text.html.parser.TagElement.TagElement_Test
++javax.swing.text.html.parser.AttributeList.AttributeList_test
++javax.swing.text.html.parser.Element.Element_Test
++javax.swing.text.html.parser.ParserDelegator.Entities
++javax.swing.text.html.parser.ParserDelegator.Text4
++javax.swing.text.html.parser.ParserDelegator.randomTables
++javax.swing.text.html.parser.ParserDelegator.SimpleParsing
++javax.swing.text.html.parser.ParserDelegator.Text3
++javax.swing.text.html.parser.ParserDelegator.Text
++javax.swing.text.html.parser.ParserDelegator.eolnNorification
++javax.swing.text.html.parser.ParserDelegator.tokenLocations
++javax.swing.text.html.parser.DTD.DTD_test
++javax.swing.text.BoxView.spans
++javax.swing.text.StyleConstants.setTabSet
++javax.swing.text.StyleConstants.setUnderline
++javax.swing.text.StyleConstants.getLeftIndent
++javax.swing.text.StyleConstants.getIcon
++javax.swing.text.StyleConstants.setFontFamily
++javax.swing.text.StyleConstants.isBold
++javax.swing.text.StyleConstants.setLineSpacing
++javax.swing.text.StyleConstants.isSubscript
++javax.swing.text.StyleConstants.setItalic
++javax.swing.text.StyleConstants.getFontSize
++javax.swing.text.StyleConstants.setComponent
++javax.swing.text.StyleConstants.setBidiLevel
++javax.swing.text.StyleConstants.getForeground
++javax.swing.text.StyleConstants.setSuperscript
++javax.swing.text.StyleConstants.getSpaceAbove
++javax.swing.text.StyleConstants.getLineSpacing
++javax.swing.text.StyleConstants.setSpaceBelow
++javax.swing.text.StyleConstants.setBackground
++javax.swing.text.StyleConstants.getRightIndent
++javax.swing.text.StyleConstants.getFirstLineIndent
++javax.swing.text.StyleConstants.isItalic
++javax.swing.text.StyleConstants.getTabSet
++javax.swing.text.StyleConstants.setIcon
++javax.swing.text.StyleConstants.isUnderline
++javax.swing.text.StyleConstants.setBold
++javax.swing.text.StyleConstants.setAlignment
++javax.swing.text.StyleConstants.setSubscript
++javax.swing.text.StyleConstants.setRightIndent
++javax.swing.text.StyleConstants.isSuperscript
++javax.swing.text.StyleConstants.getSpaceBelow
++javax.swing.text.StyleConstants.setFontSize
++javax.swing.text.StyleConstants.getFontFamily
++javax.swing.text.StyleConstants.constants
++javax.swing.text.StyleConstants.setStrikeThrough
++javax.swing.text.StyleConstants.setForeground
++javax.swing.text.StyleConstants.getAlignment
++javax.swing.text.StyleConstants.setLeftIndent
++javax.swing.text.StyleConstants.getBackground
++javax.swing.text.StyleConstants.getComponent
++javax.swing.text.StyleConstants.getBidiLevel
++javax.swing.text.StyleConstants.setFirstLineIndent
++javax.swing.text.StyleConstants.setSpaceAbove
++javax.swing.text.StyleConstants.isStrikeThrough
++javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure3
++javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure1
++javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument6
++javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure7
++javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure2
++javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument1
++javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure4
++javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure6
++javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument3
++javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure5
++javax.swing.text.DefaultStyledDocument.ElementBuffer.insert
++javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure8
++javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument2
++javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument5
++javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument4
++javax.swing.text.DefaultStyledDocument.Insert
++javax.swing.text.DefaultStyledDocument.insertString
++javax.swing.text.DefaultStyledDocument.Create
++javax.swing.text.SimpleAttributeSet.removeAttributesOnlyIfMatch
++javax.swing.text.SimpleAttributeSet.clone
++javax.swing.text.SimpleAttributeSet.EMPTY
++javax.swing.text.SimpleAttributeSet.containsAttributes
++javax.swing.text.SimpleAttributeSet.containsChecksParent
++javax.swing.text.SimpleAttributeSet.containsAttribute
++javax.swing.text.SimpleAttributeSet.getResolveParent
++javax.swing.text.SimpleAttributeSet.removeAttribute
++javax.swing.text.SimpleAttributeSet.copyAttributes
++javax.swing.text.SimpleAttributeSet.equals
++javax.swing.text.SimpleAttributeSet.removeAttributes
++javax.swing.text.SimpleAttributeSet.getAttribute
++javax.swing.text.SimpleAttributeSet.isEqual
++javax.swing.text.SimpleAttributeSet.getAttributeCount
++javax.swing.text.SimpleAttributeSet.constructors
++javax.swing.text.SimpleAttributeSet.isDefined
++javax.swing.text.SimpleAttributeSet.addAttribute
++javax.swing.text.SimpleAttributeSet.getAttributeNames
++javax.swing.text.SimpleAttributeSet.setResolveParent
++javax.swing.text.SimpleAttributeSet.isEmpty
++javax.swing.text.SimpleAttributeSet.addAttributes
++javax.swing.text.SimpleAttributeSet.nullValue
++javax.swing.text.ZoneView.getMaximumZoneSize
++javax.swing.text.ZoneView.createZone
++javax.swing.text.ZoneView.constructor
++javax.swing.text.ZoneView.zoneWasLoaded
++javax.swing.text.ZoneView.isZoneLoaded
++javax.swing.text.ZoneView.loadChildren
++javax.swing.text.ZoneView.setMaxZonesLoaded
++javax.swing.text.ZoneView.unloadZone
++javax.swing.text.ZoneView.setMaximumZoneSize
++javax.swing.text.FlowView.FlowStrategy.adjustRow
++javax.swing.text.FlowView.getFlowAxis
++javax.swing.text.InternationalFormatter.InternationalFormatterTest
++javax.swing.text.Utilities.getNextWord
++javax.swing.text.Utilities.getBreakLocation
++javax.swing.text.Utilities.getPreviousWord
++javax.swing.text.Utilities.getWordStart
++javax.swing.text.Utilities.getTabbedTextOffset
++javax.swing.text.TabStop.constructors
++javax.swing.text.TabStop.toString
++javax.swing.text.StringContent.insertUndo
++javax.swing.text.StringContent.BadLocationExceptionTest
++javax.swing.text.StringContent.stickyPosition
++javax.swing.text.StringContent.length
++javax.swing.text.StringContent.removeUndo
++javax.swing.text.StringContent.constructors
++javax.swing.text.StringContent.insertString
++javax.swing.text.StringContent.StringContentTest
++javax.swing.text.StyledEditorKit.createInputAttributesTest
++javax.swing.text.StyleContext.NamedStyleInit
++javax.swing.text.StyleContext.NamedStyleSetResolveParent
++javax.swing.text.StyleContext.addStyle
++javax.swing.text.StyleContext.addAttribute
++javax.swing.JScrollBar.getAccessibleContext
++javax.swing.JScrollBar.getInputMap
++javax.swing.JScrollBar.constructors
++javax.swing.JScrollBar.getActionMap
++javax.swing.JScrollBar.paramString
++javax.swing.plaf.basic.BasicButtonUI.getTextShiftOffset
++javax.swing.plaf.basic.BasicButtonUI.getPropertyPrefix
++javax.swing.plaf.basic.BasicButtonUI.defaultTextIconGap
++javax.swing.plaf.basic.BasicButtonUI.setTextShiftOffset
++javax.swing.plaf.basic.BasicButtonUI.defaultTextShiftOffset
++javax.swing.plaf.basic.BasicButtonUI.clearTextShiftOffset
++javax.swing.plaf.basic.BasicRadioButtonMenuItemUI.getPropertyPrefix
++javax.swing.plaf.basic.BasicToggleButtonUI.getPropertyPrefix
++javax.swing.plaf.basic.BasicSeparatorUI.getPreferredSize
++javax.swing.plaf.basic.BasicSeparatorUI.getMinimumSize
++javax.swing.plaf.basic.BasicSeparatorUI.getMaximumSize
++javax.swing.plaf.basic.BasicLookAndFeel.initSystemColorDefaults
++javax.swing.plaf.basic.BasicCheckBoxMenuItemUI.getPropertyPrefix
++javax.swing.plaf.basic.BasicHTML.isHTMLString
++javax.swing.plaf.basic.BasicScrollBarUI.layoutContainer
++javax.swing.plaf.basic.BasicScrollBarUI.getPreferredSize
++javax.swing.plaf.basic.BasicScrollBarUI.constructor
++javax.swing.plaf.basic.BasicScrollBarUI.getMinimumSize
++javax.swing.plaf.basic.BasicScrollBarUI.createDecreaseButton
++javax.swing.plaf.basic.BasicScrollBarUI.getMaximumSize
++javax.swing.plaf.basic.BasicScrollBarUI.getMaximumThumbSize
++javax.swing.plaf.basic.BasicScrollBarUI.installDefaults
++javax.swing.plaf.basic.BasicScrollBarUI.createIncreaseButton
++javax.swing.plaf.basic.BasicScrollBarUI.installComponents
++javax.swing.plaf.basic.BasicScrollBarUI.getMinimumThumbSize
++javax.swing.plaf.basic.BasicInternalFrameTitlePane.MaximizeAction.constructor
++javax.swing.plaf.basic.BasicInternalFrameTitlePane.IconifyAction.constructor
++javax.swing.plaf.basic.BasicInternalFrameTitlePane.CloseAction.constructor
++javax.swing.plaf.basic.BasicInternalFrameTitlePane.RestoreAction.constructor
++javax.swing.plaf.basic.BasicInternalFrameTitlePane.MoveAction.constructor
++javax.swing.plaf.basic.BasicInternalFrameTitlePane.SizeAction.constructor
++javax.swing.plaf.basic.BasicPasswordFieldUI.getPropertyPrefix
++javax.swing.plaf.basic.BasicSplitPaneUI.BasicHorizontalLayoutManager.layoutContainer
++javax.swing.plaf.basic.BasicSplitPaneUI.getDividerLocation
++javax.swing.plaf.basic.BasicArrowButton.getPreferredSize
++javax.swing.plaf.basic.BasicArrowButton.isFocusTraversable
++javax.swing.plaf.basic.BasicArrowButton.getMinimumSize
++javax.swing.plaf.basic.BasicArrowButton.isFocusable
++javax.swing.plaf.basic.BasicArrowButton.getMaximumSize
++javax.swing.plaf.basic.BasicSliderUI.xPositionForValue
++javax.swing.plaf.basic.BasicSliderUI.getPreferredSize
++javax.swing.plaf.basic.BasicSliderUI.getMinimumSize
++javax.swing.plaf.basic.BasicSliderUI.valueForYPosition
++javax.swing.plaf.basic.BasicSliderUI.getMaximumSize
++javax.swing.plaf.basic.BasicSliderUI.getThumbSize
++javax.swing.plaf.basic.BasicSliderUI.valueForXPosition
++javax.swing.plaf.basic.BasicSliderUI.constructors
++javax.swing.plaf.basic.BasicSliderUI.yPositionForValue
++javax.swing.plaf.basic.BasicTextFieldUI.getPropertyPrefix
++javax.swing.plaf.basic.BasicTextPaneUI.getPropertyPrefix
++javax.swing.plaf.basic.BasicMenuItemUI.getPropertyPrefix
++javax.swing.plaf.basic.BasicFormattedTextFieldUI.getPropertyPrefix
++javax.swing.plaf.basic.BasicTextAreaUI.getPropertyPrefix
++javax.swing.plaf.basic.BasicComboBoxUI.getDefaultSize
++javax.swing.plaf.basic.BasicComboBoxUI.createEditor
++javax.swing.plaf.basic.BasicComboBoxUI.getMaximumSize
++javax.swing.plaf.basic.BasicListUI.updateLayoutStateNeeded
++javax.swing.plaf.basic.BasicMenuUI.getPropertyPrefix
++javax.swing.plaf.basic.BasicIconFactory.getCheckBoxMenuItemIcon
++javax.swing.plaf.basic.BasicIconFactory.getMenuArrowIcon
++javax.swing.plaf.basic.BasicIconFactory.getCheckBoxIcon
++javax.swing.plaf.basic.BasicFileChooserUI.getFileName
++javax.swing.plaf.basic.BasicFileChooserUI.getApproveButtonText
++javax.swing.plaf.basic.BasicFileChooserUI.constructor
++javax.swing.plaf.basic.BasicFileChooserUI.getApproveButtonMnemonic
++javax.swing.plaf.basic.BasicFileChooserUI.uninstallStrings
++javax.swing.plaf.basic.BasicFileChooserUI.getApproveButton
++javax.swing.plaf.basic.BasicFileChooserUI.getGoHomeAction
++javax.swing.plaf.basic.BasicFileChooserUI.getUpdateAction
++javax.swing.plaf.basic.BasicFileChooserUI.getDirectoryName
++javax.swing.plaf.basic.BasicFileChooserUI.getApproveSelectionAction
++javax.swing.plaf.basic.BasicFileChooserUI.installStrings
++javax.swing.plaf.basic.BasicFileChooserUI.getChangeToParentDirectoryAction
++javax.swing.plaf.basic.BasicFileChooserUI.getCancelSelectionAction
++javax.swing.plaf.basic.BasicFileChooserUI.getFileView
++javax.swing.plaf.basic.BasicFileChooserUI.installIcons
++javax.swing.plaf.basic.BasicFileChooserUI.getNewFolderAction
++javax.swing.plaf.basic.BasicFileChooserUI.getApproveButtonToolTipText
++javax.swing.plaf.basic.BasicFileChooserUI.getDialogTitle
++javax.swing.plaf.basic.BasicCheckBoxUI.getPropertyPrefix
++javax.swing.plaf.basic.BasicComboBoxEditor.removeActionListener
++javax.swing.plaf.basic.BasicComboBoxEditor.addActionListener
++javax.swing.plaf.basic.BasicComboBoxEditor.constructor
++javax.swing.plaf.basic.BasicEditorPaneUI.getPropertyPrefix
++javax.swing.plaf.basic.BasicRootPaneUI.installDefaults
++javax.swing.plaf.basic.BasicRadioButtonUI.getPropertyPrefix
++javax.swing.plaf.ColorUIResource.serialization
++javax.swing.plaf.ColorUIResource.equals
++javax.swing.plaf.ColorUIResource.constructors
++javax.swing.plaf.metal.MetalTheme.MetalThemeTest
++javax.swing.plaf.metal.MetalLookAndFeel.getMenuTextFont
++javax.swing.plaf.metal.MetalLookAndFeel.getDescription
++javax.swing.plaf.metal.MetalLookAndFeel.isNativeLookAndFeel
++javax.swing.plaf.metal.MetalLookAndFeel.getSeparatorBackground
++javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControl
++javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleInactiveForeground
++javax.swing.plaf.metal.MetalLookAndFeel.getMenuBackground
++javax.swing.plaf.metal.MetalLookAndFeel.getMenuForeground
++javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlShadow
++javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleForeground
++javax.swing.plaf.metal.MetalLookAndFeel.getControlTextFont
++javax.swing.plaf.metal.MetalLookAndFeel.getControlHighlight
++javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlHighlight
++javax.swing.plaf.metal.MetalLookAndFeel.getControlTextColor
++javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlDarkShadow
++javax.swing.plaf.metal.MetalLookAndFeel.getSeparatorForeground
++javax.swing.plaf.metal.MetalLookAndFeel.getSubTextFont
++javax.swing.plaf.metal.MetalLookAndFeel.setCurrentTheme
++javax.swing.plaf.metal.MetalLookAndFeel.getControlShadow
++javax.swing.plaf.metal.MetalLookAndFeel.isSupportedLookAndFeel
++javax.swing.plaf.metal.MetalLookAndFeel.getMenuSelectedBackground
++javax.swing.plaf.metal.MetalLookAndFeel.getInactiveControlTextColor
++javax.swing.plaf.metal.MetalLookAndFeel.getWhite
++javax.swing.plaf.metal.MetalLookAndFeel.getUserTextFont
++javax.swing.plaf.metal.MetalLookAndFeel.getAcceleratorForeground
++javax.swing.plaf.metal.MetalLookAndFeel.getControlDisabled
++javax.swing.plaf.metal.MetalLookAndFeel.getID
++javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleBackground
++javax.swing.plaf.metal.MetalLookAndFeel.getName
++javax.swing.plaf.metal.MetalLookAndFeel.getSystemTextColor
++javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleFont
++javax.swing.plaf.metal.MetalLookAndFeel.getInactiveSystemTextColor
++javax.swing.plaf.metal.MetalLookAndFeel.getUserTextColor
++javax.swing.plaf.metal.MetalLookAndFeel.getWindowBackground
++javax.swing.plaf.metal.MetalLookAndFeel.getBlack
++javax.swing.plaf.metal.MetalLookAndFeel.getAcceleratorSelectedForeground
++javax.swing.plaf.metal.MetalLookAndFeel.getDesktopColor
++javax.swing.plaf.metal.MetalLookAndFeel.getSystemTextFont
++javax.swing.plaf.metal.MetalLookAndFeel.getControlDarkShadow
++javax.swing.plaf.metal.MetalLookAndFeel.getControlInfo
++javax.swing.plaf.metal.MetalLookAndFeel.getMenuDisabledForeground
++javax.swing.plaf.metal.MetalLookAndFeel.getFocusColor
++javax.swing.plaf.metal.MetalLookAndFeel.getMenuSelectedForeground
++javax.swing.plaf.metal.MetalLookAndFeel.getHighlightedTextColor
++javax.swing.plaf.metal.MetalLookAndFeel.getControl
++javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleInactiveBackground
++javax.swing.plaf.metal.MetalLookAndFeel.getTextHighlightColor
++javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlInfo
++javax.swing.plaf.metal.MetalComboBoxIcon.getIconWidth
++javax.swing.plaf.metal.MetalComboBoxIcon.getIconHeight
++javax.swing.plaf.metal.MetalComboBoxUI.getPreferredSize
++javax.swing.plaf.metal.MetalComboBoxUI.createArrowButton
++javax.swing.plaf.metal.MetalFileChooserUI.getFileName
++javax.swing.plaf.metal.MetalFileChooserUI.createFilterComboBoxModel
++javax.swing.plaf.metal.MetalFileChooserUI.getButtonPanel
++javax.swing.plaf.metal.MetalFileChooserUI.getPreferredSize
++javax.swing.plaf.metal.MetalFileChooserUI.getMinimumSize
++javax.swing.plaf.metal.MetalFileChooserUI.getMaximumSize
++javax.swing.plaf.metal.MetalFileChooserUI.getApproveButton
++javax.swing.plaf.metal.MetalFileChooserUI.setFileName
++javax.swing.plaf.metal.MetalFileChooserUI.getBottomPanel
++javax.swing.plaf.metal.MetalCheckBoxUI.getPropertyPrefix
++javax.swing.plaf.metal.MetalIconFactory.TreeFolderIcon.getAdditionalHeight
++javax.swing.plaf.metal.MetalIconFactory.TreeFolderIcon.getShift
++javax.swing.plaf.metal.MetalIconFactory.PaletteCloseIcon.getIconWidth
++javax.swing.plaf.metal.MetalIconFactory.PaletteCloseIcon.getIconHeight
++javax.swing.plaf.metal.MetalIconFactory.TreeLeafIcon.getAdditionalHeight
++javax.swing.plaf.metal.MetalIconFactory.TreeLeafIcon.getShift
++javax.swing.plaf.metal.MetalIconFactory.getInternalFrameCloseIcon
++javax.swing.plaf.metal.MetalIconFactory.getInternalFrameMaximizeIcon
++javax.swing.plaf.metal.MetalIconFactory.getMenuItemCheckIcon
++javax.swing.plaf.metal.MetalIconFactory.getRadioButtonMenuItemIcon
++javax.swing.plaf.metal.MetalIconFactory.getCheckBoxMenuItemIcon
++javax.swing.plaf.metal.MetalIconFactory.getTreeHardDriveIcon
++javax.swing.plaf.metal.MetalIconFactory.getTreeLeafIcon
++javax.swing.plaf.metal.MetalIconFactory.getMenuArrowIcon
++javax.swing.plaf.metal.MetalIconFactory.getFileChooserNewFolderIcon
++javax.swing.plaf.metal.MetalIconFactory.getTreeControlIcon
++javax.swing.plaf.metal.MetalIconFactory.getFileChooserDetailViewIcon
++javax.swing.plaf.metal.MetalIconFactory.getTreeFloppyDriveIcon
++javax.swing.plaf.metal.MetalIconFactory.getMenuItemArrowIcon
++javax.swing.plaf.metal.MetalIconFactory.getFileChooserListViewIcon
++javax.swing.plaf.metal.MetalIconFactory.getTreeComputerIcon
++javax.swing.plaf.metal.MetalIconFactory.getFileChooserHomeFolderIcon
++javax.swing.plaf.metal.MetalIconFactory.getInternalFrameAltMaximizeIcon
++javax.swing.plaf.metal.MetalIconFactory.getRadioButtonIcon
++javax.swing.plaf.metal.MetalIconFactory.getFileChooserUpFolderIcon
++javax.swing.plaf.metal.MetalIconFactory.getInternalFrameDefaultMenuIcon
++javax.swing.plaf.metal.MetalIconFactory.getInternalFrameMinimizeIcon
++javax.swing.plaf.metal.MetalIconFactory.getCheckBoxIcon
++javax.swing.plaf.metal.MetalIconFactory.getTreeFolderIcon
++javax.swing.plaf.metal.MetalRadioButtonUI.getSelectColor
++javax.swing.plaf.metal.MetalRadioButtonUI.getFocusColor
++javax.swing.plaf.metal.MetalRadioButtonUI.getDisabledTextColor
++javax.swing.plaf.metal.MetalComboBoxButton.setIconOnly
++javax.swing.plaf.metal.MetalComboBoxButton.isFocusTraversable
++javax.swing.plaf.metal.MetalComboBoxButton.setEnabled
++javax.swing.plaf.metal.MetalComboBoxButton.isIconOnly
++javax.swing.plaf.metal.MetalComboBoxButton.getComboBox
++javax.swing.plaf.metal.MetalComboBoxButton.getComboIcon
++javax.swing.plaf.metal.MetalComboBoxButton.setComboBox
++javax.swing.plaf.metal.MetalComboBoxButton.constructors
++javax.swing.plaf.metal.MetalComboBoxButton.setComboIcon
++javax.swing.plaf.metal.DefaultMetalTheme.getMenuTextFont
++javax.swing.plaf.metal.DefaultMetalTheme.DefaultMetalThemeTest
++javax.swing.plaf.metal.DefaultMetalTheme.getControlTextFont
++javax.swing.plaf.metal.DefaultMetalTheme.getSubTextFont
++javax.swing.plaf.metal.DefaultMetalTheme.getUserTextFont
++javax.swing.plaf.metal.DefaultMetalTheme.getName
++javax.swing.plaf.metal.DefaultMetalTheme.getWindowTitleFont
++javax.swing.plaf.metal.DefaultMetalTheme.getSystemTextFont
++javax.swing.plaf.metal.MetalComboBoxEditor.constructor
++javax.swing.plaf.metal.MetalComboBoxEditor.editorBorderInsets
++javax.swing.plaf.metal.MetalToolTipUI.constructor
++javax.swing.plaf.metal.MetalToolTipUI.createUI
++javax.swing.plaf.metal.OceanTheme.OceanThemeTest
++javax.swing.plaf.metal.OceanTheme.addCustomEntriesToTable
++javax.swing.plaf.metal.MetalToggleButtonUI.getSelectColor
++javax.swing.plaf.metal.MetalToggleButtonUI.getFocusColor
++javax.swing.plaf.metal.MetalToggleButtonUI.getDisabledTextColor
++javax.swing.plaf.metal.MetalBorders.ToolBarBorder.getBorderInsets
++javax.swing.plaf.metal.MetalBorders.MenuItemBorder.borderInsets
++javax.swing.plaf.metal.MetalBorders.MenuBarBorder.getBorderInsets
++javax.swing.plaf.metal.MetalBorders.MenuBarBorder.borderInsets
++javax.swing.plaf.metal.MetalBorders.getToggleButtonBorder
++javax.swing.plaf.metal.MetalBorders.getDesktopIconBorder
++javax.swing.plaf.metal.MetalBorders.getButtonBorder
++javax.swing.plaf.metal.MetalBorders.getTextFieldBorder
++javax.swing.plaf.metal.MetalBorders.getTextBorder
++javax.swing.plaf.metal.MetalScrollButton.getButtonWidth
++javax.swing.plaf.metal.MetalScrollButton.getPreferredSize
++javax.swing.plaf.metal.MetalScrollButton.constructor
++javax.swing.plaf.metal.MetalScrollButton.getMinimumSize
++javax.swing.plaf.metal.MetalScrollButton.isFocusable
++javax.swing.plaf.metal.MetalScrollButton.getMaximumSize
++javax.swing.plaf.metal.MetalScrollBarUI.layoutContainer
++javax.swing.plaf.metal.MetalScrollBarUI.getPreferredSize
++javax.swing.plaf.metal.MetalScrollBarUI.constructor
++javax.swing.plaf.metal.MetalScrollBarUI.installDefaults
++javax.swing.plaf.metal.MetalScrollBarUI.getMinimumThumbSize
++javax.swing.plaf.metal.MetalButtonUI.getSelectColor
++javax.swing.plaf.metal.MetalButtonUI.getFocusColor
++javax.swing.plaf.metal.MetalButtonUI.getDisabledTextColor
++javax.swing.plaf.IconUIResource.constructor
++javax.swing.JFrame.isRootPaneCheckingEnabled
++javax.swing.JFrame.glassPaneLayout
++javax.swing.JFrame.constructors
++javax.swing.border.TitledBorder.getTitleFont
++javax.swing.border.TitledBorder.getTitle
++javax.swing.border.TitledBorder.setTitleJustification
++javax.swing.border.TitledBorder.getBorder
++javax.swing.border.TitledBorder.getBorderInsets
++javax.swing.border.TitledBorder.setTitleColor
++javax.swing.border.TitledBorder.setTitle
++javax.swing.border.TitledBorder.setTitlePosition
++javax.swing.border.TitledBorder.getTitleJustification
++javax.swing.border.TitledBorder.setBorder
++javax.swing.border.TitledBorder.getTitleColor
++javax.swing.border.TitledBorder.isBorderOpaque
++javax.swing.border.TitledBorder.constructors
++javax.swing.border.TitledBorder.setTitleFont
++javax.swing.border.TitledBorder.getTitlePosition
++javax.swing.border.CompoundBorder.isBorderOpaque
++javax.swing.JTable.AccessibleJTable.AccessibleJTableHeaderCell.getAccessibleRole
++javax.swing.JTable.AccessibleJTable.AccessibleJTableCell.getAccessibleRole
++javax.swing.JTable.AccessibleJTable.getAccessibleColumnHeader
++javax.swing.JTable.setRowSelectionAllowed
++javax.swing.JTable.getColumn
++javax.swing.JTable.getRowHeight
++javax.swing.JTable.convertColumnIndexToModel
++javax.swing.JTable.createDefaultDataModel
++javax.swing.JTable.getCellEditor
++javax.swing.JTable.setColumnSelectionAllowed
++javax.swing.JTable.setAutoCreateColumnsFromModel
++javax.swing.JTable.setRowHeight
++javax.swing.JTable.createDefaultSelectionModel
++javax.swing.JTable.getAccessibleContext
++javax.swing.JTable.convertColumnIndexToView
++javax.swing.JTable.isCellEditable
++javax.swing.JTable.getInputMap
++javax.swing.JTable.getCellRect
++javax.swing.JTable.isRowSelected
++javax.swing.JTable.getModel
++javax.swing.JTable.initializeLocalVars
++javax.swing.JTable.createDefaultColumnsFromModel
++javax.swing.JTable.getAutoCreateColumnsFromModel
++javax.swing.JTable.isColumnSelected
++javax.swing.JTable.addColumn
++javax.swing.table.AbstractTableModel.getColumnName
++javax.swing.table.AbstractTableModel.fireTableDataChanged
++javax.swing.table.AbstractTableModel.fireTableStructureChanged
++javax.swing.table.AbstractTableModel.fireTableRowsUpdated
++javax.swing.table.AbstractTableModel.fireTableRowsDeleted
++javax.swing.table.AbstractTableModel.getColumnClass
++javax.swing.table.AbstractTableModel.isCellEditable
++javax.swing.table.AbstractTableModel.fireTableChanged
++javax.swing.table.AbstractTableModel.findColumn
++javax.swing.table.AbstractTableModel.fireTableRowsInserted
++javax.swing.table.AbstractTableModel.fireTableCellUpdated
++javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent
++javax.swing.table.DefaultTableColumnModel.getListeners
++javax.swing.table.DefaultTableColumnModel.getColumn
++javax.swing.table.DefaultTableColumnModel.getColumnModelListeners
++javax.swing.table.DefaultTableColumnModel.getSelectedColumnCount
++javax.swing.table.DefaultTableColumnModel.getSelectionModel
++javax.swing.table.DefaultTableColumnModel.getTotalColumnWidth
++javax.swing.table.DefaultTableColumnModel.constructor
++javax.swing.table.DefaultTableColumnModel.getColumns
++javax.swing.table.DefaultTableColumnModel.setColumnSelectionAllowed
++javax.swing.table.DefaultTableColumnModel.getColumnSelectionAllowed
++javax.swing.table.DefaultTableColumnModel.getColumnCount
++javax.swing.table.DefaultTableColumnModel.setSelectionModel
++javax.swing.table.DefaultTableColumnModel.setColumnMargin
++javax.swing.table.DefaultTableColumnModel.getColumnIndexAtX
++javax.swing.table.DefaultTableColumnModel.addColumnModelListener
++javax.swing.table.DefaultTableColumnModel.removeColumn
++javax.swing.table.DefaultTableColumnModel.moveColumn
++javax.swing.table.DefaultTableColumnModel.addColumn
++javax.swing.table.DefaultTableColumnModel.getColumnIndex
++javax.swing.table.DefaultTableColumnModel.getColumnMargin
++javax.swing.table.DefaultTableModel.removeRow
++javax.swing.table.DefaultTableModel.getRowCount
++javax.swing.table.DefaultTableModel.setColumnCount
++javax.swing.table.DefaultTableModel.insertRow
++javax.swing.table.DefaultTableModel.getColumnCount
++javax.swing.table.DefaultTableModel.convertToVector
++javax.swing.table.DefaultTableModel.setColumnIdentifiers
++javax.swing.table.DefaultTableModel.isCellEditable
++javax.swing.table.DefaultTableModel.setDataVector
++javax.swing.table.DefaultTableModel.setValueAt
++javax.swing.table.DefaultTableModel.moveRow
++javax.swing.table.DefaultTableModel.newDataAvailable
++javax.swing.table.DefaultTableModel.addRow
++javax.swing.table.DefaultTableModel.constructors
++javax.swing.table.DefaultTableModel.getDataVector
++javax.swing.table.DefaultTableModel.rowsRemoved
++javax.swing.table.DefaultTableModel.addColumn
++javax.swing.table.DefaultTableModel.setRowCount
++javax.swing.table.DefaultTableModel.getValueAt
++javax.swing.table.TableColumn.setCellEditor
++javax.swing.table.TableColumn.getHeaderRenderer
++javax.swing.table.TableColumn.getIdentifier
++javax.swing.table.TableColumn.setPreferredWidth
++javax.swing.table.TableColumn.setHeaderValue
++javax.swing.table.TableColumn.getCellRenderer
++javax.swing.table.TableColumn.sizeWidthToFit
++javax.swing.table.TableColumn.setResizable
++javax.swing.table.TableColumn.properties
++javax.swing.table.TableColumn.removePropertyChangeListener
++javax.swing.table.TableColumn.setIdentifier
++javax.swing.table.TableColumn.addPropertyChangeListener
++javax.swing.table.TableColumn.setMinWidth
++javax.swing.table.TableColumn.setModelIndex
++javax.swing.table.TableColumn.setCellRenderer
++javax.swing.table.TableColumn.getModelIndex
++javax.swing.table.TableColumn.setMaxWidth
++javax.swing.table.TableColumn.setWidth
++javax.swing.table.TableColumn.constants
++javax.swing.table.TableColumn.setHeaderRenderer
++javax.swing.table.TableColumn.getHeaderValue
++javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getLocale
++javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.isFocusTraversable
++javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.setAccessibleName
++javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleName
++javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleDescription
++javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleIndexInParent
++javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleContext
++javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.isVisible
++javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleChild
++javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleRole
++javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleComponent
++javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleChildrenCount
++javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleValue
++javax.swing.table.JTableHeader.AccessibleJTableHeader.getAccessibleChild
++javax.swing.table.JTableHeader.AccessibleJTableHeader.getAccessibleRole
++javax.swing.table.JTableHeader.AccessibleJTableHeader.getAccessibleChildrenCount
++javax.swing.table.JTableHeader.getAccessibleContext
++javax.swing.event.InternalFrameEvent.constructor
++javax.swing.event.InternalFrameEvent.getInternalFrame
++javax.swing.event.InternalFrameEvent.paramString
++javax.swing.event.ListDataEvent.getIndex0
++javax.swing.event.ListDataEvent.constructor
++javax.swing.event.ListDataEvent.getType
++javax.swing.event.ListDataEvent.getSource
++javax.swing.event.ListDataEvent.getIndex1
++javax.swing.event.ListDataEvent.toString
++javax.swing.event.TableModelEvent.constructors
++javax.swing.event.SwingPropertyChangeSupport.firePropertyChange
++javax.swing.event.SwingPropertyChangeSupport.getPropertyChangeListeners
++javax.swing.event.SwingPropertyChangeSupport.constructor
++javax.swing.event.SwingPropertyChangeSupport.hasListeners
++javax.swing.event.SwingPropertyChangeSupport.removePropertyChangeListener
++javax.swing.event.SwingPropertyChangeSupport.addPropertyChangeListener
++javax.swing.event.EventListenerList.getListeners
++javax.swing.event.EventListenerList.add
++javax.swing.event.EventListenerList.getListenerList
++javax.swing.event.EventListenerList.getListenerCount
++javax.swing.event.EventListenerList.toString
++javax.swing.event.EventListenerList.remove
++javax.swing.event.TreeSelectionEvent.isAddedPath
++javax.swing.event.TreeSelectionEvent.cloneWithSource
++javax.swing.event.TreeSelectionEvent.constructors
++javax.swing.JDesktopPane.constructor
++javax.swing.JRadioButton.isFocusable
++javax.swing.JRadioButton.uidelegate
++javax.swing.JRadioButton.getActionCommand
++javax.swing.JRadioButton.model
++javax.swing.JMenuBar.getComponentIndex
++javax.swing.JMenuBar.getHelpMenu
++javax.swing.JMenuBar.getSubElements
++javax.swing.JMenuBar.setMargin
++javax.swing.JMenuBar.getInputMap
++javax.swing.JMenuBar.setHelpMenu
++javax.swing.JMenuBar.getActionMap
++javax.swing.JMenuBar.getMenu
++javax.swing.JCheckBoxMenuItem.uidelegate
++javax.swing.JCheckBoxMenuItem.getActionCommand
++javax.swing.JCheckBoxMenuItem.model
++javax.swing.JCheckBoxMenuItem.constructors
++javax.swing.JComboBox.getPrototypeDisplayValue
++javax.swing.JComboBox.MutableTest2
++javax.swing.JComboBox.setEditor
++javax.swing.JComboBox.getEditor
++javax.swing.JComboBox.addItem
++javax.swing.JComboBox.MutableTest1
++javax.swing.JComboBox.removeItem
++javax.swing.JComboBox.setModel
++javax.swing.JComboBox.setSelectedIndex
++javax.swing.JComboBox.model
++javax.swing.JComboBox.listenerList
++javax.swing.JComboBox.setPrototypeDisplayValue
++javax.swing.JComboBox.setEditable
++javax.swing.JComboBox.SimpleSelectionTest
++javax.swing.OverlayLayout.layoutContainer
++javax.swing.OverlayLayout.getLayoutAlignmentY
++javax.swing.OverlayLayout.getLayoutAlignmentX
++javax.swing.OverlayLayout.preferredLayoutSize
++javax.swing.OverlayLayout.minimumLayoutSize
++javax.swing.OverlayLayout.maximumLayoutSize
++javax.swing.JScrollPane.AccessibleJScrollPane.resetViewport
++javax.swing.JScrollPane.createHorizontalScrollBar
++javax.swing.JScrollPane.getInputMap
++javax.swing.JScrollPane.createVerticalScrollBar
++javax.swing.JScrollPane.getActionMap
++javax.swing.DefaultListCellRenderer.getListCellRendererComponent
++javax.swing.JFileChooser.setFileHidingEnabled
++javax.swing.JFileChooser.getControlButtonsAreShown
++javax.swing.JFileChooser.setApproveButtonMnemonic
++javax.swing.JFileChooser.setFileSystemView
++javax.swing.JFileChooser.getApproveButtonText
++javax.swing.JFileChooser.setDialogTitle
++javax.swing.JFileChooser.setDialogType
++javax.swing.JFileChooser.setSelectedFile
++javax.swing.JFileChooser.getChoosableFileFilters
++javax.swing.JFileChooser.getApproveButtonMnemonic
++javax.swing.JFileChooser.setApproveButtonText
++javax.swing.JFileChooser.getDialogType
++javax.swing.JFileChooser.getFileFilter
++javax.swing.JFileChooser.setAccessory
++javax.swing.JFileChooser.isAcceptAllFileFilterUsed
++javax.swing.JFileChooser.accept
++javax.swing.JFileChooser.setControlButtonsAreShown
++javax.swing.JFileChooser.setFileView
++javax.swing.JFileChooser.setCurrentDirectory
++javax.swing.JFileChooser.isFileHidingEnabled
++javax.swing.JFileChooser.constructors
++javax.swing.JFileChooser.changeToParentDirectory
++javax.swing.JFileChooser.getFileView
++javax.swing.JFileChooser.getFileSystemView
++javax.swing.JFileChooser.setSelectedFiles
++javax.swing.JFileChooser.setFileFilter
++javax.swing.JFileChooser.getFileSelectionMode
++javax.swing.JFileChooser.setFileSelectionMode
++javax.swing.JFileChooser.getSelectedFiles
++javax.swing.JFileChooser.getAccessory
++javax.swing.JFileChooser.setApproveButtonToolTipText
++javax.swing.JFileChooser.getApproveButtonToolTipText
++javax.swing.JFileChooser.getDialogTitle
++javax.swing.SpinnerDateModel.getPreviousValue
++javax.swing.SpinnerDateModel.setStart
++javax.swing.SpinnerDateModel.setEnd
++javax.swing.SpinnerDateModel.setValue
++javax.swing.SpinnerDateModel.getNextValue
++javax.swing.SpinnerDateModel.constructors
++javax.swing.JDialog.isRootPaneCheckingEnabled
++javax.swing.JPopupMenu.getInputMap
++javax.swing.JSlider.getPaintTrack
++javax.swing.JSlider.addChangeListener
++javax.swing.JSlider.setMinimum
++javax.swing.JSlider.setSnapToTicks
++javax.swing.JSlider.setOrientation
++javax.swing.JSlider.getMinorTickSpacing
++javax.swing.JSlider.setValue
++javax.swing.JSlider.setMaximum
++javax.swing.JSlider.setExtent
++javax.swing.JSlider.setPaintLabels
++javax.swing.JSlider.getSnapToTicks
++javax.swing.JSlider.setMinorTickSpacing
++javax.swing.JSlider.getUIClassID
++javax.swing.JSlider.setLabelTable
++javax.swing.JSlider.getPaintTicks
++javax.swing.JSlider.setModel
++javax.swing.JSlider.getMaximum
++javax.swing.JSlider.setPaintTicks
++javax.swing.JSlider.getPaintLabels
++javax.swing.JSlider.getMinimum
++javax.swing.JSlider.getModel
++javax.swing.JSlider.getInverted
++javax.swing.JSlider.setInverted
++javax.swing.JSlider.constructors
++javax.swing.JSlider.getMajorTickSpacing
++javax.swing.JSlider.createStandardLabels
++javax.swing.JSlider.setMajorTickSpacing
++javax.swing.JSlider.getExtent
++javax.swing.JSlider.setPaintTrack
++javax.swing.JSlider.getLabelTable
++javax.swing.DefaultButtonModel.addActionListener
++javax.swing.DefaultButtonModel.setPressed
++javax.swing.DefaultButtonModel.setEnabled
++javax.swing.DefaultButtonModel.constructor
++javax.swing.DefaultButtonModel.setActionCommand
++javax.swing.DefaultButtonModel.getSelectedObjects
++javax.swing.DefaultButtonModel.setArmed
++javax.swing.DefaultButtonModel.setSelected
++javax.swing.DefaultButtonModel.constants
++javax.swing.DefaultButtonModel.setRollover
++javax.swing.DefaultButtonModel.setGroup
++javax.swing.JComponent.getListeners
++javax.swing.JComponent.setVerifyInputWhenFocusTarget
++javax.swing.JComponent.getVetoableChangeListeners
++javax.swing.JComponent.setInheritsPopupMenu
++javax.swing.JComponent.getPreferredSize
++javax.swing.JComponent.setEnabled
++javax.swing.JComponent.constructor
++javax.swing.JComponent.registerKeyboardAction
++javax.swing.JComponent.setUI
++javax.swing.JComponent.getActionForKeyStroke
++javax.swing.JComponent.setMinimumSize
++javax.swing.JComponent.setPreferredSize
++javax.swing.JComponent.setDefaultLocale
++javax.swing.JComponent.setBackground
++javax.swing.JComponent.setBorder
++javax.swing.JComponent.getInputMap
++javax.swing.JComponent.setVisible
++javax.swing.JComponent.setAlignmentX
++javax.swing.JComponent.setComponentPopupMenu
++javax.swing.JComponent.getFont
++javax.swing.JComponent.setAlignmentY
++javax.swing.JComponent.setMaximumSize
++javax.swing.JComponent.setFont
++javax.swing.JComponent.getVerifyInputWhenFocusTarget
++javax.swing.JComponent.putClientProperty
++javax.swing.JComponent.getAlignmentY
++javax.swing.JComponent.getComponentPopupMenu
++javax.swing.JComponent.getAlignmentX
++javax.swing.JComponent.removeVetoableChangeListener
++javax.swing.JComponent.getRegisteredKeyStrokes
++javax.swing.JComponent.setForeground
++javax.swing.JComponent.paint
++javax.swing.JComponent.setOpaque
++javax.swing.JComponent.addVetoableChangeListener
++javax.swing.JProgressBar.isStringPainted
++javax.swing.JProgressBar.setOrientation
++javax.swing.JProgressBar.setValue
++javax.swing.JProgressBar.setBorderPainted
++javax.swing.JProgressBar.setStringPainted
++javax.swing.JProgressBar.getAccessibleContext
++javax.swing.JProgressBar.getPercentComplete
++javax.swing.JProgressBar.paramString
++javax.swing.JMenu.uidelegate
++javax.swing.JMenu.getInputMap
++javax.swing.JMenu.getActionCommand
++javax.swing.JMenu.model
++javax.swing.JMenu.getPopUpMenu
++javax.swing.JMenu.remove
++javax.swing.UIManager.LookAndFeelInfo.constructor
++javax.swing.UIManager.getPropertyChangeListeners
++javax.swing.UIManager.getBoolean
++javax.swing.UIManager.addAuxiliaryLookAndFeel
++javax.swing.UIManager.getString
++javax.swing.UIManager.getBorder
++javax.swing.UIManager.getIcon
++javax.swing.UIManager.getInsets
++javax.swing.UIManager.removeAuxiliaryLookAndFeel
++javax.swing.UIManager.setLookAndFeel
++javax.swing.UIManager.getFont
++javax.swing.UIManager.getDefaults
++javax.swing.UIManager.getInt
++javax.swing.UIManager.addPropertyChangeListener
++javax.swing.UIManager.getUI
++javax.swing.UIManager.getDimension
++javax.swing.UIManager.getLookAndFeelDefaults
++javax.swing.UIManager.getCrossPlatformLookAndFeelClassName
++javax.swing.UIManager.getColor
++javax.swing.UIManager.getAuxiliaryLookAndFeels
++javax.swing.JPanel.setBorder
++javax.swing.JPanel.Layouter
++javax.swing.JTree.getCellRenderer
++javax.swing.JTree.isRowSelected
++javax.swing.JTree.setModel
++javax.swing.TransferHandler.exportToClipboard
++javax.swing.TransferHandler.TransferActionConstructor
++javax.swing.TransferHandler.canImport
++javax.swing.TransferHandler.importData
++javax.swing.TransferHandler.createTransferable
++javax.swing.JToolTip.setComponent
++javax.swing.JToolTip.setTipText
++javax.swing.JToolTip.getAccessibleContext
++javax.swing.JToolTip.getUIClassID
++javax.swing.JToolTip.getTipText
++javax.swing.JToolTip.paramString
++javax.swing.JToolTip.getComponent
++javax.swing.JToolBar.buttonInsets
++javax.swing.JToolBar.getInputMap
++javax.swing.JRootPane.RootLayout.layoutContainer
++javax.swing.JRootPane.RootLayout.getLayoutAlignmentY
++javax.swing.JRootPane.RootLayout.getLayoutAlignmentX
++javax.swing.JRootPane.RootLayout.preferredLayoutSize
++javax.swing.JRootPane.setLayeredPane
++javax.swing.ScrollPaneLayout.minimumLayoutSize
++javax.swing.Timer.preparatory
++javax.swing.Timer.setDelay
++javax.swing.Timer.basic
++javax.swing.Timer.test_23918
++javax.swing.Timer.setInitialDelay
++javax.swing.ActionMap.newMapKeysNull
++javax.swing.InputMap.put
++javax.swing.InputMap.constructor
++javax.swing.InputMap.keys
++javax.swing.InputMap.setParent
++javax.swing.InputMap.size
++javax.swing.InputMap.newMapKeysNull
++javax.swing.InputMap.get
++javax.swing.InputMap.getParent
++javax.swing.InputMap.remove
++javax.swing.InputMap.clear
++javax.swing.InputMap.allKeys
++javax.swing.filechooser.FileView.getDescription
++javax.swing.filechooser.FileView.getIcon
++javax.swing.filechooser.FileView.getName
++javax.swing.filechooser.FileView.isTraversable
++javax.swing.filechooser.FileView.getTypeDescription
++javax.swing.filechooser.FileSystemView.getFileSystemView
++javax.swing.ViewportLayout.layoutContainer
++javax.swing.ViewportLayout.minimumLayoutSize
++javax.swing.JList.AccessibleJList.AccessibleJListChild.isFocusTraversable
++javax.swing.JList.AccessibleJList.AccessibleJListChild.isEnabled
++javax.swing.JList.AccessibleJList.AccessibleJListChild.setEnabled
++javax.swing.JList.AccessibleJList.AccessibleJListChild.setCursor
++javax.swing.JList.AccessibleJList.AccessibleJListChild.getForeground
++javax.swing.JList.AccessibleJList.AccessibleJListChild.setBackground
++javax.swing.JList.AccessibleJList.AccessibleJListChild.isVisible
++javax.swing.JList.AccessibleJList.AccessibleJListChild.isShowing
++javax.swing.JList.AccessibleJList.AccessibleJListChild.getFont
++javax.swing.JList.AccessibleJList.AccessibleJListChild.getCursor
++javax.swing.JList.AccessibleJList.AccessibleJListChild.getAccessibleRole
++javax.swing.JList.AccessibleJList.AccessibleJListChild.setFont
++javax.swing.JList.AccessibleJList.AccessibleJListChild.getAccessibleStateSet
++javax.swing.JList.AccessibleJList.AccessibleJListChild.setForeground
++javax.swing.JList.AccessibleJList.AccessibleJListChild.getBackground
++javax.swing.JList.AccessibleJList.valueChanged
++javax.swing.JList.AccessibleJList.getAccessibleChild
++javax.swing.JList.AccessibleJList.getAccessibleRole
++javax.swing.JList.AccessibleJList.intervalAdded
++javax.swing.JList.AccessibleJList.intervalRemoved
++javax.swing.JList.AccessibleJList.contentsChanged
++javax.swing.JList.AccessibleJList.getAccessibleStateSet
++javax.swing.JList.setValueIsAdjusting
++javax.swing.JList.setVisibleRowCount
++javax.swing.JList.setSelectionBackground
++javax.swing.JList.setBackground
++javax.swing.JList.getSelectionBackground
++javax.swing.JList.getInputMap
++javax.swing.JList.setModel
++javax.swing.JList.getNextMatch
++javax.swing.JList.setLayoutOrientation
++javax.swing.JList.constructors
++javax.swing.JList.getBackground
++javax.swing.ToolTipManager.setReshowDelay
++javax.swing.ToolTipManager.setInitialDelay
++javax.swing.ToolTipManager.setDismissDelay
++javax.swing.AbstractButton.constructor
++javax.swing.AbstractButton.setRolloverEnabled
++javax.swing.AbstractButton.setRolloverSelectedIcon
++javax.swing.AbstractButton.init
++javax.swing.AbstractButton.setVerticalTextPosition
++javax.swing.AbstractButton.setHorizontalAlignment
++javax.swing.AbstractButton.setHorizontalTextPosition
++javax.swing.AbstractButton.setRolloverIcon
++javax.swing.AbstractButton.setVerticalAlignment
++javax.swing.AbstractButton.createChangeListener
++javax.swing.JLayeredPane.defaultLayoutManager
++javax.swing.JLayeredPane.getComponentsInLayer
++javax.swing.JLayeredPane.setPosition
++javax.swing.JLayeredPane.moveToFront
++javax.swing.JLayeredPane.addImpl
++javax.swing.DefaultListModel.toArray
++javax.swing.DefaultListModel.trimToSize
++javax.swing.DefaultListModel.removeAllElements
++javax.swing.DefaultListModel.constructor
++javax.swing.DefaultListModel.add
++javax.swing.DefaultListModel.lastElement
++javax.swing.DefaultListModel.copyInto
++javax.swing.DefaultListModel.firstElement
++javax.swing.DefaultListModel.setElementAt
++javax.swing.DefaultListModel.set
++javax.swing.DefaultListModel.elementAt
++javax.swing.DefaultListModel.ensureCapacity
++javax.swing.DefaultListModel.indexOf
++javax.swing.DefaultListModel.insertElementAt
++javax.swing.DefaultListModel.setSize
++javax.swing.DefaultListModel.lastIndexOf
++javax.swing.DefaultListModel.elements
++javax.swing.DefaultListModel.size
++javax.swing.DefaultListModel.getSize
++javax.swing.DefaultListModel.capacity
++javax.swing.DefaultListModel.removeElementAt
++javax.swing.DefaultListModel.get
++javax.swing.DefaultListModel.contains
++javax.swing.DefaultListModel.getElementAt
++javax.swing.DefaultListModel.removeRange
++javax.swing.DefaultListModel.addElement
++javax.swing.DefaultListModel.removeElement
++javax.swing.DefaultListModel.isEmpty
++javax.swing.DefaultListModel.remove
++javax.swing.DefaultListModel.clear
++javax.swing.JFormattedTextField.JFormattedTextFieldTests
++javax.swing.AbstractAction.clone
++javax.swing.AbstractAction.setEnabled
++javax.swing.AbstractAction.getValue
++javax.swing.AbstractAction.constructors
++javax.swing.AbstractAction.putValue
++javax.swing.JTextArea.preferredSize
++javax.swing.JTextArea.isValidChecks
++javax.swing.JTextArea.text
++javax.swing.JTextArea.gettingText
++javax.swing.JCheckBox.constructor
++javax.swing.JCheckBox.isFocusable
++javax.swing.JCheckBox.uidelegate
++javax.swing.JCheckBox.getActionCommand
++javax.swing.JCheckBox.model
++javax.swing.JButton.uidelegate
++javax.swing.JButton.getActionCommand
++javax.swing.JButton.model
++javax.swing.SizeRequirements.calculateAlignedPositions
++javax.swing.tree.TreePath.getParentPath
++javax.swing.tree.TreePath.serialization
++javax.swing.tree.TreePath.getPath
++javax.swing.tree.TreePath.getLastPathComponent
++javax.swing.tree.TreePath.PR27651
++javax.swing.tree.TreePath.isDescendant
++javax.swing.tree.TreePath.equals
++javax.swing.tree.TreePath.getPathCount
++javax.swing.tree.TreePath.constructors
++javax.swing.tree.TreePath.getPathComponent
++javax.swing.tree.TreePath.pathByAddingChild
++javax.swing.tree.DefaultMutableTreeNode.clone
++javax.swing.tree.DefaultMutableTreeNode.getChildAt
++javax.swing.tree.DefaultMutableTreeNode.getChildBefore
++javax.swing.tree.DefaultMutableTreeNode.getSiblingCount
++javax.swing.tree.DefaultMutableTreeNode.isNodeSibling
++javax.swing.tree.DefaultMutableTreeNode.getIndex
++javax.swing.tree.DefaultMutableTreeNode.isNodeChild
++javax.swing.tree.DefaultMutableTreeNode.add
++javax.swing.tree.DefaultMutableTreeNode.getFirstChild
++javax.swing.tree.DefaultMutableTreeNode.getPath
++javax.swing.tree.DefaultMutableTreeNode.removeAllChildren
++javax.swing.tree.DefaultMutableTreeNode.getChildCount
++javax.swing.tree.DefaultMutableTreeNode.isNodeRelated
++javax.swing.tree.DefaultMutableTreeNode.getNextSibling
++javax.swing.tree.DefaultMutableTreeNode.getPreviousSibling
++javax.swing.tree.DefaultMutableTreeNode.setAllowsChildren
++javax.swing.tree.DefaultMutableTreeNode.getPreviousLeaf
++javax.swing.tree.DefaultMutableTreeNode.isNodeAncestor
++javax.swing.tree.DefaultMutableTreeNode.getNextPreviousNode
++javax.swing.tree.DefaultMutableTreeNode.isNodeDescendant
++javax.swing.tree.DefaultMutableTreeNode.breadthFirstEnumeration
++javax.swing.tree.DefaultMutableTreeNode.getLastLeaf
++javax.swing.tree.DefaultMutableTreeNode.children
++javax.swing.tree.DefaultMutableTreeNode.getAllowsChildren
++javax.swing.tree.DefaultMutableTreeNode.getFirstLeaf
++javax.swing.tree.DefaultMutableTreeNode.constructors
++javax.swing.tree.DefaultMutableTreeNode.isLeaf
++javax.swing.tree.DefaultMutableTreeNode.insert
++javax.swing.tree.DefaultMutableTreeNode.DefaultMutableTreeNodeTest
++javax.swing.tree.DefaultMutableTreeNode.getParent
++javax.swing.tree.DefaultMutableTreeNode.getLastChild
++javax.swing.tree.DefaultMutableTreeNode.pathFromAncestorEnumeration
++javax.swing.tree.DefaultMutableTreeNode.remove
++javax.swing.tree.DefaultMutableTreeNode.getNextLeaf
++javax.swing.tree.DefaultMutableTreeNode.getChildAfter
++javax.swing.tree.DefaultTreeCellRenderer.getBackgroundSelectionColor
++javax.swing.tree.DefaultTreeCellRenderer.getOpenIcon
++javax.swing.tree.DefaultTreeCellRenderer.getClosedIcon
++javax.swing.tree.DefaultTreeCellRenderer.setOpenIcon
++javax.swing.tree.DefaultTreeCellRenderer.constructor
++javax.swing.tree.DefaultTreeCellRenderer.getLeafIcon
++javax.swing.tree.DefaultTreeCellRenderer.getBorderSelectionColor
++javax.swing.tree.DefaultTreeCellRenderer.setLeafIcon
++javax.swing.tree.DefaultTreeCellRenderer.getDefaultLeafIcon
++javax.swing.tree.DefaultTreeCellRenderer.setBackgroundSelectionColor
++javax.swing.tree.DefaultTreeCellRenderer.getDefaultOpenIcon
++javax.swing.tree.DefaultTreeCellRenderer.getDefaultClosedIcon
++javax.swing.tree.DefaultTreeCellRenderer.setBackgroundNonSelectionColor
++javax.swing.tree.DefaultTreeCellRenderer.setBorderSelectionColor
++javax.swing.tree.DefaultTreeCellRenderer.getBackgroundNonSelectionColor
++javax.swing.tree.DefaultTreeCellRenderer.setClosedIcon
++javax.swing.tree.VariableHeightLayoutCache.getBounds
++javax.swing.BoxLayout.layoutContainer
++javax.swing.BoxLayout.invalidateLayout
++javax.swing.BoxLayout.constructor
++javax.swing.BoxLayout.simplevertical
++javax.swing.BoxLayout.maximumLayoutSize2
++javax.swing.BoxLayout.getLayoutAlignmentY
++javax.swing.BoxLayout.horizontal2
++javax.swing.BoxLayout.getLayoutAlignmentX
++javax.swing.BoxLayout.simplehorizontal
++javax.swing.BoxLayout.constants
++javax.swing.BoxLayout.preferredLayoutSize
++javax.swing.BoxLayout.minimumLayoutSize
++javax.swing.BoxLayout.maximumLayoutSize
++javax.swing.JApplet.isRootPaneCheckingEnabled
++javax.swing.DefaultBoundedRangeModel.setValueIsAdjusting
++javax.swing.DefaultBoundedRangeModel.setMinimum
++javax.swing.DefaultBoundedRangeModel.serialization
++javax.swing.DefaultBoundedRangeModel.setValue
++javax.swing.DefaultBoundedRangeModel.setMaximum
++javax.swing.DefaultBoundedRangeModel.setExtent
++javax.swing.DefaultBoundedRangeModel.getChangeListeners
++javax.swing.DefaultBoundedRangeModel.getValue
++javax.swing.DefaultBoundedRangeModel.setRangeProperties
++javax.swing.DefaultBoundedRangeModel.getMaximum
++javax.swing.DefaultBoundedRangeModel.getValueIsAdjusting
++javax.swing.DefaultBoundedRangeModel.getMinimum
++javax.swing.DefaultBoundedRangeModel.general
++javax.swing.DefaultBoundedRangeModel.toString
++javax.swing.DefaultBoundedRangeModel.getExtent
++javax.swing.undo.UndoableEditSupport.getUndoableEditListeners
++javax.swing.undo.UndoableEditSupport.createCompoundEdit
++javax.swing.undo.UndoableEditSupport.toString
++javax.swing.undo.UndoableEditSupport.beginUpdate
++javax.swing.undo.UndoableEditSupport.UndoableEditSupport
++javax.swing.undo.UndoableEditSupport.getUpdateLevel
++javax.swing.undo.CompoundEdit.lastEdit
++javax.swing.undo.CompoundEdit.addEdit
++javax.swing.undo.CompoundEdit.canRedo
++javax.swing.undo.CompoundEdit.canUndo
++javax.swing.undo.CompoundEdit.isInProgress
++javax.swing.undo.AbstractUndoableEdit.getRedoPresentationName
++javax.swing.undo.AbstractUndoableEdit.addEdit
++javax.swing.undo.AbstractUndoableEdit.canRedo
++javax.swing.undo.AbstractUndoableEdit.redo
++javax.swing.undo.AbstractUndoableEdit.undo
++javax.swing.undo.AbstractUndoableEdit.canUndo
++javax.swing.undo.AbstractUndoableEdit.getPresentationName
++javax.swing.undo.AbstractUndoableEdit.replaceEdit
++javax.swing.undo.AbstractUndoableEdit.isSignificant
++javax.swing.undo.AbstractUndoableEdit.getUndoPresentationName
++javax.swing.undo.StateEdit.undo
++javax.swing.undo.StateEdit.getPresentationName
++javax.swing.undo.UndoManager.getRedoPresentationName
++javax.swing.undo.UndoManager.getUndoOrRedoPresentationName
++javax.swing.undo.UndoManager.addEdit
++javax.swing.undo.UndoManager.canRedo
++javax.swing.undo.UndoManager.trimEdits
++javax.swing.undo.UndoManager.undoTo
++javax.swing.undo.UndoManager.editToBeUndone
++javax.swing.undo.UndoManager.canUndo
++javax.swing.undo.UndoManager.undoableEditHappened
++javax.swing.undo.UndoManager.setLimit
++javax.swing.undo.UndoManager.discardAllEdits
++javax.swing.undo.UndoManager.redoTo
++javax.swing.undo.UndoManager.end
++javax.swing.undo.UndoManager.toString
++javax.swing.undo.UndoManager.getUndoPresentationName
++javax.swing.undo.UndoManager.getLimit
++javax.swing.undo.UndoManager.editToBeRedone
++javax.swing.undo.UndoManager.canUndoOrRedo
++javax.swing.JMenuItem.getActionCommand
++javax.swing.JMenuItem.constructors
++javax.swing.DefaultComboBoxModel.removeAllElements
++javax.swing.DefaultComboBoxModel.insertElementAt
++javax.swing.DefaultComboBoxModel.getIndexOf
++javax.swing.DefaultComboBoxModel.getSize
++javax.swing.DefaultComboBoxModel.constructors
++javax.swing.DefaultComboBoxModel.removeElementAt
++javax.swing.DefaultComboBoxModel.getSelectedItem
++javax.swing.DefaultComboBoxModel.getElementAt
++javax.swing.DefaultComboBoxModel.addElement
++javax.swing.DefaultComboBoxModel.removeElement
++javax.swing.SizeSequence.getIndex
++javax.swing.SizeSequence.getSizes
++javax.swing.SizeSequence.removeEntries
++javax.swing.SizeSequence.setSizes
++javax.swing.SizeSequence.setSize
++javax.swing.SizeSequence.getSize
++javax.swing.SizeSequence.constructors
++javax.swing.SizeSequence.insertEntries
++javax.swing.JTextField.CopyPaste
++javax.swing.JTextField.createDefaultModel
++javax.swing.JTextField.setDocument
++javax.swing.JTextField.fireActionPerformed
++javax.swing.UIDefaults.putDefaults
++javax.swing.UIDefaults.getBoolean
++javax.swing.UIDefaults.remove
++javax.swing.RepaintManager.addDirtyRegion
++javax.swing.JInternalFrame.AccessibleJInternalFrame.getAccessibleName
++javax.swing.JInternalFrame.AccessibleJInternalFrame.getCurrentAccessibleValue
++javax.swing.JInternalFrame.AccessibleJInternalFrame.getMaximumAccessibleValue
++javax.swing.JInternalFrame.AccessibleJInternalFrame.setCurrentAccessibleValue
++javax.swing.JInternalFrame.AccessibleJInternalFrame.getAccessibleRole
++javax.swing.JInternalFrame.AccessibleJInternalFrame.getAccessibleValue
++javax.swing.JInternalFrame.AccessibleJInternalFrame.getMinimumAccessibleValue
++javax.swing.JInternalFrame.getDesktopIcon
++javax.swing.JInternalFrame.isRootPaneCheckingEnabled
++javax.swing.JInternalFrame.setDefaultCloseOperation
++javax.swing.JInternalFrame.isIconifiable
++javax.swing.JInternalFrame.setTitle
++javax.swing.JInternalFrame.setClosable
++javax.swing.JInternalFrame.setResizable
++javax.swing.JInternalFrame.setIconifiable
++javax.swing.JInternalFrame.setFrameIcon
++javax.swing.JInternalFrame.setMaximizable
++javax.swing.JInternalFrame.getInputMap
++javax.swing.JInternalFrame.setClosed
++javax.swing.JInternalFrame.setNormalBounds
++javax.swing.JInternalFrame.setSelected2
++javax.swing.JInternalFrame.dispose
++javax.swing.JInternalFrame.isResizable
++javax.swing.JInternalFrame.constructors
++javax.swing.JInternalFrame.paramString
++javax.swing.JInternalFrame.setDesktopIcon
++javax.swing.JInternalFrame.getNormalBounds
++javax.swing.SpinnerListModel.Constructors
++javax.swing.SpinnerListModel.Ordering
++javax.swing.SpinnerListModel.SetList
++javax.swing.SpinnerListModel.ArrayModel
++javax.swing.SpinnerListModel.ListModel
++javax.swing.JRadioButtonMenuItem.isFocusable
++javax.swing.JRadioButtonMenuItem.uidelegate
++javax.swing.JRadioButtonMenuItem.getActionCommand
++javax.swing.JRadioButtonMenuItem.model
++javax.swing.KeyStroke.getKeyStroke
++javax.swing.SpinnerNumberModel.getPreviousValue
++javax.swing.SpinnerNumberModel.setMinimum
++javax.swing.SpinnerNumberModel.setValue
++javax.swing.SpinnerNumberModel.setMaximum
++javax.swing.SpinnerNumberModel.getNextValue
++javax.swing.SpinnerNumberModel.setStepSize
++javax.swing.SpinnerNumberModel.constructors
++javax.swing.JLabel.AccessibleJLabel.getAccessibleName
++javax.swing.JLabel.setDisplayedMnemonicIndex
++javax.swing.JLabel.constructor
++javax.swing.JLabel.getAccessibleContext
++javax.swing.JLabel.Icon
++javax.swing.JLabel.getInputMap
++javax.swing.JLabel.setHorizontalAlignment
++javax.swing.JLabel.setFont
++javax.swing.JLabel.setDisplayedMnemonic
++javax.swing.JLabel.getActionMap
++javax.swing.JLabel.Mnemonic
++javax.swing.JLabel.paramString
++javax.swing.JLabel.setVerticalAlignment
++javax.swing.JEditorPane.ContentType
++javax.swing.JEditorPane.ViewType
++javax.swing.JEditorPane.setText
++javax.swing.JEditorPane.getScrollableTracks
++javax.swing.DefaultListSelectionModel.clone
++javax.swing.DefaultListSelectionModel.getListeners
++javax.swing.DefaultListSelectionModel.setValueIsAdjusting
++javax.swing.DefaultListSelectionModel.setAnchorSelectionIndex
++javax.swing.DefaultListSelectionModel.removeListSelectionListener
++javax.swing.DefaultListSelectionModel.constructor
++javax.swing.DefaultListSelectionModel.removeIndexInterval
++javax.swing.DefaultListSelectionModel.removeSelectionInterval
++javax.swing.DefaultListSelectionModel.getAnchorSelectionIndex
++javax.swing.DefaultListSelectionModel.getLeadSelectionIndex
++javax.swing.DefaultListSelectionModel.isLeadAnchorNotificationEnabled
++javax.swing.DefaultListSelectionModel.setSelectionInterval
++javax.swing.DefaultListSelectionModel.getSelectionMode
++javax.swing.DefaultListSelectionModel.isSelectedIndex
++javax.swing.DefaultListSelectionModel.moveLeadSelectionIndex
++javax.swing.DefaultListSelectionModel.leadSelectionIndex
++javax.swing.DefaultListSelectionModel.getMaxSelectionIndex
++javax.swing.DefaultListSelectionModel.getMinSelectionIndex
++javax.swing.DefaultListSelectionModel.getListSelectionListeners
++javax.swing.DefaultListSelectionModel.getValueIsAdjusting
++javax.swing.DefaultListSelectionModel.isSelectionEmpty
++javax.swing.DefaultListSelectionModel.addSelectionInterval
++javax.swing.DefaultListSelectionModel.setLeadSelectionIndex
++javax.swing.DefaultListSelectionModel.toString
++javax.swing.DefaultListSelectionModel.setSelectionMode
++javax.swing.DefaultListSelectionModel.clearSelection
++javax.swing.DefaultListSelectionModel.insertIndexInterval
++javax.swing.DefaultListSelectionModel.addListSelectionListener
++javax.swing.SwingUtilities.calculateInnerArea
++javax.swing.SwingUtilities.isRectangleContainingRectangle
++javax.swing.SwingUtilities.computeIntersection
++javax.swing.SwingUtilities.replaceUIActionMap
++javax.swing.SwingUtilities.computeUnion
++javax.swing.JSpinner.ListEditor.constructor
++javax.swing.JSpinner.ListEditor.getModel
++javax.swing.JSpinner.NumberEditor.getModel
++javax.swing.JSpinner.NumberEditor.constructors
++javax.swing.JSpinner.NumberEditor.getFormat
++javax.swing.JSpinner.DefaultEditor.constructor
++javax.swing.JSpinner.DefaultEditor.stateChanged
++javax.swing.JSpinner.DefaultEditor.propertyChange
++javax.swing.JSpinner.DefaultEditor.preferredLayoutSize
++javax.swing.JSpinner.DefaultEditor.minimumLayoutSize
++javax.swing.JSpinner.DateEditor.getModel
++javax.swing.JSpinner.getPreviousValue
++javax.swing.JSpinner.addChangeListener
++javax.swing.JSpinner.createEditor
++javax.swing.JSpinner.getChangeListeners
++javax.swing.JSpinner.setEditor
++javax.swing.JSpinner.getUIClassID
++javax.swing.JSpinner.getEditor
++javax.swing.JSpinner.setModel
++javax.swing.JSpinner.getNextValue
++javax.swing.JSpinner.getModel
++javax.swing.JSpinner.constructors
++javax.swing.JSpinner.removeChangeListener
++javax.swing.ButtonGroup.constructor
++javax.swing.ButtonGroup.add
++javax.swing.ButtonGroup.isSelected
++javax.swing.ButtonGroup.getSelection
++javax.swing.ButtonGroup.getElements
++javax.swing.ButtonGroup.getButtonCount
++javax.swing.ButtonGroup.setSelected
++javax.swing.ButtonGroup.remove
++javax.swing.JViewport.setView
++gnu.javax.crypto.jce.TestOfDHKeyAgreement2
++gnu.javax.crypto.jce.TestOfPR27849
++gnu.javax.crypto.jce.TestOfPR27228
++java.rmi.server.Uniqueness
++java.lang.Integer.compareTo
++java.lang.Integer.decode
++java.lang.Integer.new_Integer
++java.lang.Integer.IntegerTest
++java.lang.Integer.getInteger
++java.lang.Integer.parseInt
++java.lang.ClassLoader.redefine
++java.lang.ClassLoader.security
++java.lang.ClassLoader.loadClass
++java.lang.ClassLoader.initialize
++java.lang.ClassLoader.Resources
++java.lang.ClassLoader.BootDefinedPackages
++java.lang.Number.NumberTest
++java.lang.ProcessBuilder.simple
++java.lang.System.getProperty
++java.lang.System.arraycopy
++java.lang.System.identityHashCode
++java.lang.ThreadGroup.enumerate
++java.lang.ThreadGroup.insecurity
++java.lang.ThreadGroup.security
++java.lang.String.substring
++java.lang.String.compareTo
++java.lang.String.getBytes13
++java.lang.String.hash
++java.lang.String.split
++java.lang.String.getBytes14
++java.lang.String.startsWith
++java.lang.String.equals
++java.lang.String.indexOf
++java.lang.String.to
++java.lang.String.StringTest
++java.lang.String.surrogate
++java.lang.String.charAt
++java.lang.String.new_String
++java.lang.String.getBytes
++java.lang.String.CASE_INSENSITIVE_ORDER
++java.lang.Class.ClassTest
++java.lang.Class.serialization
++java.lang.Class.reflect
++java.lang.Class.security
++java.lang.Class.init
++java.lang.Class.newInstance
++java.lang.Class.reflect2
++java.lang.Cloneable.CloneableTest
++java.lang.ref.WeakReference.weakref
++java.lang.ref.PhantomReference.phantom
++java.lang.Double.compareTo
++java.lang.Double.DoubleSetterTest
++java.lang.Double.DoubleTest
++java.lang.Double.toHexString
++java.lang.Double.parseDouble
++java.lang.Double.compare
++java.lang.Double.valueOf
++java.lang.StrictMath.cbrt
++java.lang.StrictMath.expm1
++java.lang.StrictMath.cosh
++java.lang.StrictMath.sinh
++java.lang.StrictMath.tanh
++java.lang.Short.hash
++java.lang.Short.ShortTest
++java.lang.InheritableThreadLocal.simple
++java.lang.Math.max
++java.lang.Math.ulp
++java.lang.Math.sin
++java.lang.Math.min
++java.lang.Math.cos
++java.lang.Math.MathTest
++java.lang.Math.rint
++java.lang.Boolean.BooleanTest
++java.lang.Boolean.equals_Boolean
++java.lang.Boolean.new_Boolean
++java.lang.Boolean.hashcode_Boolean
++java.lang.Boolean.get
++java.lang.Boolean.value
++java.lang.Float.compareTo
++java.lang.Float.toHexString
++java.lang.Float.compare
++java.lang.Float.parseFloat
++java.lang.Float.valueOf
++java.lang.Float.FloatTest
++java.lang.Float.new_Float
++java.lang.reflect.Array.set
++java.lang.reflect.Array.newInstance
++java.lang.reflect.AccessibleObject.accessible
++java.lang.reflect.Field.promotion
++java.lang.reflect.Field.access
++java.lang.reflect.Field.toString
++java.lang.reflect.Modifier.toString12
++java.lang.reflect.Modifier.toString
++java.lang.reflect.Constructor.newInstance
++java.lang.reflect.Constructor.toString
++java.lang.reflect.Proxy.DeclaringClass
++java.lang.reflect.Proxy.check13
++java.lang.reflect.Proxy.ExceptionRaising
++java.lang.reflect.Proxy.ToString
++java.lang.reflect.InvocationTargetException.Chain
++java.lang.reflect.Method.equals
++java.lang.reflect.Method.toString
++java.lang.reflect.Method.invoke
++java.lang.reflect.ReflectAccess
++java.lang.ThreadLocal.simple
++java.lang.Object.clone
++java.lang.Object.wait
++java.lang.Object.ObjectTest
++java.lang.Object.oom
++java.lang.Byte.ByteTest
++java.lang.Byte.new_Byte
++java.lang.StringBuffer.StringBufferTest
++java.lang.StringBuffer.plus
++java.lang.Long.Tests15
++java.lang.Long.getLong
++java.lang.Long.LongTest
++java.lang.Long.new_Long
++java.lang.Thread.join
++java.lang.Thread.isAlive
++java.lang.Thread.name
++java.lang.Thread.interrupt
++java.lang.Thread.contextClassLoader
++java.lang.Thread.getThreadGroup
++java.lang.Thread.priority
++java.lang.Thread.stop
++java.lang.Thread.daemon
++java.lang.Package.getPackage
++java.lang.Character.digit
++java.lang.Character.Blocks
++java.lang.Character.unicode
++java.lang.Character.getNumericValue
++java.lang.Character.getType
++java.lang.Character.hash
++java.lang.Character.classify
++java.lang.Character.classify12
++java.lang.Character.to
++java.lang.Character.consts
++java.lang.Character.forDigit
++java.lang.Character.getType12
++java.lang.Character.equals_Character
++java.lang.Character.CharacterTest
++java.lang.Character.Blocks15
++java.lang.SecurityManager.thread
++java.text.StringCharacterIterator.constructor
++java.text.StringCharacterIterator.iter
++java.text.CollationElementIterator.offset
++java.text.CollationElementIterator.jdk11
++java.text.AttributedString.constructors
++java.text.AttributedString.addAttribute
++java.text.AttributedString.getIterator
++java.text.AttributedString.addAttributes
++java.text.AttributedString.Test
++java.text.DecimalFormat.setCurrency
++java.text.DecimalFormat.clone
++java.text.DecimalFormat.setDecimalFormatSymbols
++java.text.DecimalFormat.getNegativePrefix
++java.text.DecimalFormat.applyPattern
++java.text.DecimalFormat.formatToCharacterIterator
++java.text.DecimalFormat.getNegativeSuffix
++java.text.DecimalFormat.setNegativePrefix
++java.text.DecimalFormat.applyLocalizedPattern
++java.text.DecimalFormat.getDecimalFormatSymbols
++java.text.DecimalFormat.toLocalizedPattern
++java.text.DecimalFormat.isDecimalSeparatorAlwaysShown
++java.text.DecimalFormat.setNegativeSuffix
++java.text.DecimalFormat.PR27311
++java.text.DecimalFormat.getPositivePrefix
++java.text.DecimalFormat.getCurrency
++java.text.DecimalFormat.equals
++java.text.DecimalFormat.digits
++java.text.DecimalFormat.setDecimalSeparatorAlwaysShown
++java.text.DecimalFormat.setPositiveSuffix
++java.text.DecimalFormat.parse
++java.text.DecimalFormat.setPositivePrefix
++java.text.DecimalFormat.toPattern14
++java.text.DecimalFormat.setMultiplier
++java.text.DecimalFormat.format
++java.text.DecimalFormat.getPositiveSuffix
++java.text.DecimalFormat.setGroupingSize
++java.text.DecimalFormat.PR23996
++java.text.DecimalFormat.toPattern
++java.text.DecimalFormat.constructors
++java.text.DecimalFormat.MaximumAndMinimumDigits
++java.text.DecimalFormat.formatExp
++java.text.DecimalFormat.getGroupingSize
++java.text.DecimalFormat.hashCode
++java.text.DecimalFormat.position
++java.text.DecimalFormat.getMultiplier
++java.text.NumberFormat.UK
++java.text.CharacterIterator.implement
++java.text.ParsePosition.Test
++java.text.BreakIterator.chariter
++java.text.BreakIterator.patho
++java.text.BreakIterator.lineiter
++java.text.BreakIterator.sentiter
++java.text.BreakIterator.worditer
++java.text.Collator.Constants
++java.text.Collator.GetSet
++java.text.ParseException.Test
++java.text.Annotation.Test
++java.text.RuleBasedCollator.CollatorTests
++java.text.RuleBasedCollator.VeryBasic
++java.text.MessageFormat.format14
++java.text.MessageFormat.attribute
++java.text.MessageFormat.parse
++java.text.MessageFormat.format
++java.text.ChoiceFormat.next
++java.text.ChoiceFormat.parse
++java.text.ChoiceFormat.format
++java.text.DateFormatSymbols.setMonths
++java.text.DateFormatSymbols.setShortMonths
++java.text.DateFormatSymbols.setEras
++java.text.DateFormatSymbols.setAmPmStrings
++java.text.DateFormatSymbols.setWeekdays
++java.text.DateFormatSymbols.setZoneStrings
++java.text.DateFormatSymbols.setShortWeekdays
++java.text.DateFormatSymbols.Test
++java.text.AttributedCharacterIterator.Attribute.toString
++java.text.AttributedCharacterIterator.getRunLimit
++java.text.AttributedCharacterIterator.implement
++java.text.AttributedCharacterIterator.getRunStart
++java.text.AttributedCharacterIterator.getAttribute
++java.text.DateFormat.equals
++java.text.DateFormat.hashCode
++java.text.DateFormat.Test
++java.text.ACIAttribute.Test
++java.text.DecimalFormatSymbols.serial
++java.text.DecimalFormatSymbols.GetSet12
++java.text.DecimalFormatSymbols.getCurrency
++java.text.DecimalFormatSymbols.DumpDefault11
++java.text.DecimalFormatSymbols.GetSet11
++java.text.DecimalFormatSymbols.DumpDefault12
++java.text.FieldPosition.Test
++java.text.SimpleDateFormat.applyPattern
++java.text.SimpleDateFormat.Localization
++java.text.SimpleDateFormat.applyLocalizedPattern
++java.text.SimpleDateFormat.toLocalizedPattern
++java.text.SimpleDateFormat.attribute
++java.text.SimpleDateFormat.Cloning
++java.text.SimpleDateFormat.getDateFormatSymbols
++java.text.SimpleDateFormat.parse
++java.text.SimpleDateFormat.toPattern
++java.text.SimpleDateFormat.constructors
++java.text.SimpleDateFormat.setDateFormatSymbols
++java.text.SimpleDateFormat.getAndSet2DigitYearStart
++java.text.SimpleDateFormat.Test
++java.text.Bidi.Basic
++java.text.Bidi.reorderVisually
++java.math.BigInteger.compareTo
++java.math.BigInteger.modInverse
++java.math.BigInteger.shift
++java.math.BigInteger.serialization
++java.math.BigInteger.add
++java.math.BigInteger.TestOfPR27372
++java.math.BigInteger.signum
++java.math.BigInteger.modPow
++java.math.BigInteger.equals
++java.math.BigInteger.divide
++java.math.BigInteger.setBit
++java.math.BigInteger.multiply
++java.math.BigInteger.TestOfToByteArray
++java.math.BigInteger.toString
++java.math.BigInteger.ctor
++java.math.BigInteger.abs
++java.math.BigInteger.valueOf
++java.math.BigDecimal.compareTo
++java.math.BigDecimal.divide
++java.math.BigDecimal.DiagBigDecimal
++java.math.BigDecimal.construct
++java.math.BigDecimal.setScale
++java.security.MessageDigest.Instance
++java.security.AccessController.doPrivileged
++java.security.AccessController.contexts
++java.security.Security.getAlgorithms
++java.security.Security.provider
++java.security.Provider.NameVersionInfo
++java.security.SecureRandom.SHA1PRNG
++java.security.SecureRandom.TestOfPR23899
++java.security.SecureRandom.Instance
++java.security.KeyPairGenerator.getInstance14
++java.security.AlgorithmParameters.getInstance14
++java.security.AlgorithmParameterGenerator.getInstance14
++java.security.DigestInputStream.readMD5
++java.security.KeyFactory.getInstance14
++java.security.Signature.getInstance14
++java.security.Signature.Instance
++java.security.BasicPermission.newPermission
++java.sql.Clob.ClobTest
++java.sql.Types.TestJdbc10
++java.sql.Types.TestJdbc20
++java.sql.Array.ArrayTest
++java.sql.Blob.BlobTest
++java.sql.Connection.TestJdbc
++java.sql.Time.TimeTest
++java.sql.DriverManager.DriverManagerTest
++java.sql.Date.DateTest
++java.sql.DatabaseMetaData.TestJdbc
++java.sql.Timestamp.TimestampTest
++java.io.RandomAccessFile.setLength
++java.io.RandomAccessFile.security
++java.io.RandomAccessFile.jdk11
++java.io.RandomAccessFile.randomaccessfile
++java.io.BufferedWriter.Test
++java.io.PipedReaderWriter.Test
++java.io.PushbackInputStream.ProtectedVars
++java.io.PushbackInputStream.BufferOverflow
++java.io.PushbackInputStream.Unread
++java.io.FileOutputStream.append
++java.io.FileOutputStream.fileoutputstream
++java.io.FileOutputStream.security
++java.io.FileOutputStream.write
++java.io.FileOutputStream.jdk12
++java.io.StringWriter.Test
++java.io.FilterOutputStream.write
++java.io.ObjectInputStream.security
++java.io.ObjectInputStream.readResolve
++java.io.ObjectInputStream.ClassLoaderTest
++java.io.ObjectOutputStream.security
++java.io.ObjectOutputStream.StreamDataTest
++java.io.ObjectOutputStream.useProtocolVersion
++java.io.InputStream.Test
++java.io.Utf8Encoding.ReadReference
++java.io.Utf8Encoding.WriteRead
++java.io.FilePermission.traversal2
++java.io.FilePermission.simple
++java.io.FilePermission.traversal
++java.io.FileWriter.jdk11
++java.io.OutputStreamWriter.jdk11
++java.io.Serializable.BreakMe
++java.io.Serializable.BreakMeTestSer
++java.io.Serializable.ParentReadResolve
++java.io.Serializable.readResolve
++java.io.Serializable.ParentWriteReplace
++java.io.ObjectInputOutput.LoopSerializationTest
++java.io.ObjectInputOutput.ExtTest
++java.io.ObjectInputOutput.Deserializable
++java.io.ObjectInputOutput.ProxySerializationTest
++java.io.ObjectInputOutput.Compat1
++java.io.ObjectInputOutput.SerTest
++java.io.ObjectInputOutput.HierarchyTest
++java.io.ObjectInputOutput.OutputTest
++java.io.ObjectInputOutput.InputTest
++java.io.PrintWriter.jdk11
++java.io.PrintWriter.checkError
++java.io.SequenceInputStream.Test
++java.io.StringBufferInputStream.ProtectedVars
++java.io.StringBufferInputStream.SimpleRead
++java.io.StringBufferInputStream.MarkReset
++java.io.LineNumberReader.Test2
++java.io.LineNumberReader.mark
++java.io.LineNumberReader.Test
++java.io.InputStreamReader.hang
++java.io.InputStreamReader.utf8
++java.io.InputStreamReader.jdk11
++java.io.InputStreamReader.except
++java.io.InputStreamReader.getEncoding
++java.io.DataInputStream.readLine
++java.io.DataInputStream.ReadReference
++java.io.DataInputStream.ReadReference2
++java.io.FilterWriter.write
++java.io.CharArrayWriter.ProtectedVars
++java.io.CharArrayWriter.BasicTests
++java.io.FileDescriptor.jdk11
++java.io.Reader.Test
++java.io.PushbackReader.BufferOverflow
++java.io.PushbackReader.Unread
++java.io.ByteArrayOutputStream.subclass
++java.io.ByteArrayOutputStream.write
++java.io.PrintStream.subclass
++java.io.PrintStream.encodings
++java.io.ObjectStreamClass.ProxyTest
++java.io.ObjectStreamClass.Test
++java.io.FilterReader.SimpleRead
++java.io.FilterReader.MarkReset
++java.io.BufferedOutputStream.interrupt
++java.io.BufferedOutputStream.Test
++java.io.BufferedInputStream.Skip
++java.io.BufferedInputStream.BigMark
++java.io.BufferedInputStream.ProtectedVars
++java.io.BufferedInputStream.ZeroRead
++java.io.BufferedInputStream.SimpleRead
++java.io.BufferedInputStream.MarkReset
++java.io.BufferedReader.mark
++java.io.BufferedReader.SimpleRead
++java.io.BufferedReader.MarkReset
++java.io.BufferedReader.boundary
++java.io.DataOutputStream.WriteRead2
++java.io.DataOutputStream.writeUTF
++java.io.DataOutputStream.WriteRead
++java.io.PipedStream.close
++java.io.PipedStream.receive
++java.io.PipedStream.Test
++java.io.FileInputStream.fileinputstream
++java.io.FileInputStream.read
++java.io.FileInputStream.security
++java.io.Writer.Test
++java.io.FilterInputStream.SimpleRead
++java.io.FilterInputStream.MarkReset
++java.io.FileReader.jdk11
++java.io.StringReader.Test
++java.io.ByteArrayInputStream.ProtectedVars
++java.io.ByteArrayInputStream.SimpleRead
++java.io.ByteArrayInputStream.MarkReset
++java.io.File.newFileURI
++java.io.File.URI
++java.io.File.createFile
++java.io.File.security
++java.io.File.ReadMethods
++java.io.File.ExecuteMethods
++java.io.File.list
++java.io.File.jdk11
++java.io.File.newFile
++java.io.File.WriteMethods
++java.io.File.canWrite
++java.io.File.listFiles
++java.io.File.emptyFile
++java.io.File.UnicodeURI
++java.io.OutputStream.Test
++java.io.StreamTokenizer.WordWhiteChars
++java.io.StreamTokenizer.slashstar
++java.io.StreamTokenizer.commentchar
++java.io.StreamTokenizer.slashslash
++java.io.StreamTokenizer.newline
++java.io.StreamTokenizer.misc
++java.io.StreamTokenizer.Test
++java.io.LineNumberInputStream.Test
++java.io.CharArrayReader.ProtectedVars
++java.io.CharArrayReader.OutOfBounds
++java.io.CharArrayReader.SimpleRead
++java.io.CharArrayReader.MarkReset
++java.util.Stack.AcuniaStackTest
++java.util.Arrays.asList
++java.util.Arrays.fill
++java.util.Arrays.equals
++java.util.Arrays.sort
++java.util.Arrays.binarySearch
++java.util.Properties.getProperty
++java.util.Properties.AcuniaPropertiesTest
++java.util.Properties.load
++java.util.TreeSet.basic
++java.util.Observable.observable
++java.util.StringTokenizer.hasMoreElements
++java.util.StringTokenizer.hasMoreTokens
++java.util.StringTokenizer.countTokens
++java.util.StringTokenizer.nextToken
++java.util.StringTokenizer.constructors
++java.util.StringTokenizer.nextElement
++java.util.IdentityHashMap.simple
++java.util.prefs.PreferenceTest
++java.util.Hashtable.HashContains
++java.util.Hashtable.AcuniaHashtableTest
++java.util.Hashtable.EnumerateAndModify
++java.util.Hashtable.basic
++java.util.Hashtable.ContainsHash
++java.util.Hashtable.NullValue
++java.util.TreeMap.serialization
++java.util.TimeZone.setDefault
++java.util.TimeZone.zdump
++java.util.TimeZone.setID
++java.util.UUID.TestAll
++java.util.Currency.Constructors
++java.util.Currency.Germany
++java.util.Currency.ReferenceEquality
++java.util.Currency.France
++java.util.Currency.getInstance
++java.util.Currency.Japan
++java.util.Currency.UK
++java.util.Currency.Korea
++java.util.Currency.PRC
++java.util.Currency.Canada
++java.util.Currency.CanadaFrench
++java.util.Currency.China
++java.util.Currency.Taiwan
++java.util.Currency.Italy
++java.util.AbstractCollection.AcuniaAbstractCollectionTest
++java.util.AbstractCollection.AcuniaAddCollectionTest
++java.util.AbstractCollection.toString
++java.util.SimpleTimeZone.clone
++java.util.SimpleTimeZone.hasSameRules
++java.util.SimpleTimeZone.getRawOffset
++java.util.SimpleTimeZone.setRawOffset
++java.util.SimpleTimeZone.check14
++java.util.SimpleTimeZone.equals
++java.util.SimpleTimeZone.inDaylightTime
++java.util.SimpleTimeZone.setStartYear
++java.util.SimpleTimeZone.constructors
++java.util.SimpleTimeZone.getOffset
++java.util.SimpleTimeZone.setDSTSavings
++java.util.SimpleTimeZone.hashCode
++java.util.SimpleTimeZone.constants
++java.util.SimpleTimeZone.getDSTSavings
++java.util.AbstractList.AcuniaAbstractListTest
++java.util.Collections.nCopies
++java.util.Collections.fill
++java.util.Collections.max
++java.util.Collections.copy
++java.util.Collections.rotate
++java.util.Collections.unmodifiableList
++java.util.Collections.min
++java.util.Collections.unmodifiableMap
++java.util.Collections.reverse
++java.util.Collections.reverseOrder
++java.util.Collections.sort
++java.util.Collections.binarySearch
++java.util.logging.SocketHandler.SocketHandler
++java.util.logging.XMLFormatter.getTail
++java.util.logging.Handler.isLoggable
++java.util.logging.Handler.setEncoding
++java.util.logging.Handler.setFilter
++java.util.logging.Handler.getErrorManager
++java.util.logging.Handler.reportError
++java.util.logging.Handler.setLevel
++java.util.logging.Handler.setErrorManager
++java.util.logging.LogRecord.getThreadID
++java.util.logging.LogRecord.setLoggerName
++java.util.logging.LogRecord.getMillis
++java.util.logging.LogRecord.setThrown
++java.util.logging.LogRecord.setThreadID
++java.util.logging.LogRecord.setSequenceNumber
++java.util.logging.LogRecord.setSourceMethodName
++java.util.logging.LogRecord.setResourceBundle
++java.util.logging.LogRecord.setMillis
++java.util.logging.LogRecord.setMessage
++java.util.logging.LogRecord.setParameters
++java.util.logging.LogRecord.setSourceClassName
++java.util.logging.LogRecord.setLevel
++java.util.logging.Level.intValue
++java.util.logging.Level.equals
++java.util.logging.Level.getName
++java.util.logging.Level.parse
++java.util.logging.Level.toString
++java.util.logging.Level.hashCode
++java.util.logging.LogManager.readConfiguration
++java.util.logging.LoggingMXBean.Test
++java.util.logging.Logger.hierarchyChecks
++java.util.logging.Logger.getName
++java.util.logging.Logger.getAnonymousLogger
++java.util.logging.Logger.securityChecks
++java.util.logging.Logger.getParent
++java.util.logging.Logger.global
++java.util.Iterator.ConcurrentModification
++java.util.BitSet.AcuniaBitSetTest
++java.util.BitSet.flip
++java.util.BitSet.jdk10
++java.util.BitSet.get
++java.util.BitSet.clear
++java.util.Timer.taskException
++java.util.GregorianCalendar.first
++java.util.GregorianCalendar.setFirstDayOfWeek
++java.util.GregorianCalendar.dayOfWeekInMonth
++java.util.GregorianCalendar.setWeekOfMonth
++java.util.GregorianCalendar.internal
++java.util.GregorianCalendar.equals
++java.util.GregorianCalendar.getMinimum
++java.util.GregorianCalendar.getMinimalDaysInFirstWeek
++java.util.GregorianCalendar.conversion
++java.util.GregorianCalendar.weekOfYear
++java.util.Random.basic
++java.util.AbstractSet.AcuniaAbstractSetTest
++java.util.Calendar.TimeZone
++java.util.Calendar.ampm
++java.util.Calendar.add
++java.util.Calendar.minmax
++java.util.Calendar.setTime
++java.util.Calendar.setTimeZone
++java.util.Calendar.getInstance
++java.util.Calendar.set
++java.util.Calendar.simple
++java.util.Calendar.roll
++java.util.Calendar.dstOffset
++java.util.regex.Matcher.hitEnd
++java.util.regex.Pattern.UnicodeSimpleCategory
++java.util.regex.Pattern.pcrematches
++java.util.regex.Pattern.matches
++java.util.regex.PatternSplit
++java.util.regex.CharacterClasses
++java.util.AbstractSequentialList.AcuniaAbstractSequentialListTest
++java.util.LinkedList.subList
++java.util.LinkedList.AcuniaLinkedListTest
++java.util.LinkedList.SubListTest
++java.util.HashMap.AcuniaHashMapTest
++java.util.jar.JarInputStream.getNextEntry
++java.util.jar.JarFile.TestOfManifest
++java.util.jar.JarFile.basic
++java.util.Vector.subList
++java.util.Vector.copyInto
++java.util.Vector.removeAll
++java.util.Vector.retainAll
++java.util.Vector.VectorSerialization
++java.util.zip.ZipEntry.time
++java.util.zip.ZipEntry.Size
++java.util.zip.ZipEntry.newZipEntry
++java.util.zip.ZipEntry.setComment
++java.util.zip.ZipInputStream.close
++java.util.zip.ZipInputStream.basic
++java.util.zip.Deflater.PR27435
++java.util.zip.Adler32.checksum
++java.util.zip.GZIPInputStream.PR24461
++java.util.zip.GZIPInputStream.basic
++java.util.zip.InflaterInputStream.basic
++java.util.zip.ZipFile.DirEntryTest
++java.util.zip.ZipFile.NoEntryTest
++java.util.zip.ZipFile.newZipFile
++java.util.Date.compareTo
++java.util.Date.clone
++java.util.Date.before
++java.util.Date.serialization
++java.util.Date.range
++java.util.Date.equals
++java.util.Date.parse
++java.util.Date.after
++java.util.Date.getTimezoneOffset
++java.util.LinkedHashMap.LinkedHashMapTest
++java.util.LinkedHashMap.Regress
++java.util.ArrayList.subList
++java.util.ArrayList.serial
++java.util.ResourceBundle.getBundle
++java.util.AbstractMap.AcuniaAbstractMapTest
++java.beans.XMLDecoder.jdk14
++java.beans.Expression.check
++java.beans.Introspector.getBeanInfo2
++java.beans.Introspector.getBeanInfo4
++java.beans.Introspector.getBeanInfo
++java.beans.Introspector.jdk11
++java.beans.Introspector.jdk12
++java.beans.Introspector.getBeanInfo2_2
++java.beans.DesignMode.constants
++java.beans.PropertyEditorSupport.setValue
++java.beans.PropertyEditorSupport.getSource
++java.beans.SimpleBeanInfo.getIcon
++java.beans.SimpleBeanInfo.getDefaultPropertyIndex
++java.beans.SimpleBeanInfo.getEventSetDescriptors
++java.beans.SimpleBeanInfo.getDefaultEventIndex
++java.beans.SimpleBeanInfo.getBeanDescriptor
++java.beans.SimpleBeanInfo.getAdditionalBeanInfo
++java.beans.SimpleBeanInfo.loadImage
++java.beans.EventSetDescriptor.constructorTest1
++java.beans.FeatureDescriptor.check
++java.beans.beancontext.BeanContextSupport.toArray
++java.beans.beancontext.BeanContextSupport.getChildPropertyChangeListener
++java.beans.beancontext.BeanContextSupport.serialize
++java.beans.beancontext.BeanContextSupport.getChildBeanContextChild
++java.beans.beancontext.BeanContextSupport.getChildBeanContextMembershipListener
++java.beans.beancontext.BeanContextSupport.setDesignTime
++java.beans.beancontext.BeanContextSupport.getChildVisibility
++java.beans.beancontext.BeanContextSupport.constructors
++java.beans.beancontext.BeanContextSupport.getChildVetoableChangeListener
++java.beans.beancontext.BeanContextSupport.getChildSerializable
++java.beans.beancontext.BeanContextSupport.getBeanContextPeer
++java.beans.beancontext.BeanContextServicesSupport.getChildBeanContextServicesListener
++java.beans.beancontext.InstantiateChild
++java.beans.beancontext.Remove
++java.beans.beancontext.Array
++java.beans.beancontext.Add
++java.beans.PropertyChangeSupport.firePropertyChange
++java.beans.VetoableChangeSupport.addVetoableChangeListener
++java.beans.Statement.check
++java.beans.Beans.instantiate_1
++java.beans.EventHandler.check
++java.beans.EventHandler.check14b
++java.beans.PropertyDescriptor.constructorTest2
++java.beans.PropertyDescriptor.constructorTest1
++java.beans.MethodDescriptor.constructorTest1
++java.awt.AWTEvent.constants
++java.awt.CardLayout.show
++java.awt.CardLayout.first
++java.awt.CardLayout.testMaximumLayoutSize
++java.awt.CardLayout.testMinimumLayoutSize
++java.awt.Graphics.clearRect
++java.awt.Polygon.contains
++java.awt.Polygon.getPathIterator
++java.awt.BasicStroke.equals
++java.awt.BasicStroke.constructors
++java.awt.BasicStroke.hashCode
++java.awt.BasicStroke.constants
++java.awt.Graphics2D.setClip
++java.awt.Graphics2D.getClip
++java.awt.Graphics2D.getClipBounds
++java.awt.Graphics2D.setTransform
++java.awt.Graphics2D.clip
++java.awt.Graphics2D.transform
++java.awt.Point.move
++java.awt.Point.clone
++java.awt.Point.equals
++java.awt.Point.constructors
++java.awt.Point.setLocation
++java.awt.Point.translate
++java.awt.Point.getLocation
++java.awt.event.ComponentEvent.paramString
++java.awt.image.ShortLookupTable.getTable
++java.awt.image.ShortLookupTable.lookupPixel
++java.awt.image.ShortLookupTable.constructors
++java.awt.image.PixelGrabber.SimpleGrabber
++java.awt.image.PixelGrabber.testNullProducer
++java.awt.image.ConvolveOp.getEdgeCondition
++java.awt.image.ConvolveOp.getKernel
++java.awt.image.ConvolveOp.filterRaster
++java.awt.image.ConvolveOp.getRenderingHints
++java.awt.image.ConvolveOp.getPoint2D
++java.awt.image.ConvolveOp.createCompatibleDestRaster
++java.awt.image.ConvolveOp.constructors
++java.awt.image.ConvolveOp.getBounds2D
++java.awt.image.ConvolveOp.constants
++java.awt.image.IndexColorModel.getGreens
++java.awt.image.IndexColorModel.getComponentSize
++java.awt.image.IndexColorModel.getTransparentPixel
++java.awt.image.IndexColorModel.getColorSpace
++java.awt.image.IndexColorModel.getAlphas
++java.awt.image.IndexColorModel.getPixelSize
++java.awt.image.IndexColorModel.isValid
++java.awt.image.IndexColorModel.constructors
++java.awt.image.IndexColorModel.getBlues
++java.awt.image.IndexColorModel.getReds
++java.awt.image.IndexColorModel.getTransparency
++java.awt.image.DataBuffer.getDataTypeSize
++java.awt.image.DataBuffer.getOffset
++java.awt.image.DataBuffer.constants
++java.awt.image.DataBuffer.getOffsets
++java.awt.image.DataBufferUShort.getData
++java.awt.image.DataBufferUShort.getBankData
++java.awt.image.DataBufferUShort.setElem
++java.awt.image.DataBufferUShort.getElem
++java.awt.image.DataBufferUShort.getDataType
++java.awt.image.DataBufferUShort.constructors
++java.awt.image.ComponentSampleModel.setPixels
++java.awt.image.ComponentSampleModel.getPixelStride
++java.awt.image.ComponentSampleModel.getDataElements
++java.awt.image.ComponentSampleModel.getSample
++java.awt.image.ComponentSampleModel.getBandOffsets
++java.awt.image.ComponentSampleModel.equals
++java.awt.image.ComponentSampleModel.getPixel
++java.awt.image.ComponentSampleModel.getNumDataElements
++java.awt.image.ComponentSampleModel.getSamples
++java.awt.image.ComponentSampleModel.getSampleSize
++java.awt.image.ComponentSampleModel.getSampleFloat
++java.awt.image.ComponentSampleModel.setDataElements
++java.awt.image.ComponentSampleModel.constructors
++java.awt.image.ComponentSampleModel.setPixel
++java.awt.image.ComponentSampleModel.createDataBuffer
++java.awt.image.ComponentSampleModel.getOffset
++java.awt.image.ComponentSampleModel.getSampleDouble
++java.awt.image.ComponentSampleModel.createCompatibleSampleModel
++java.awt.image.ComponentSampleModel.setSamples
++java.awt.image.ComponentSampleModel.hashCode
++java.awt.image.ComponentSampleModel.getPixels
++java.awt.image.ComponentSampleModel.getScanlineStride
++java.awt.image.ComponentSampleModel.createSubsetSampleModel
++1 problem (1 error)java.awt.image.ColorModel.getComponentSize
++java.awt.image.ColorModel.getRGBdefault
++java.awt.image.ColorModel.constructors
++java.awt.image.LookupTable.constructor
++java.awt.image.LookupTable.getNumComponents
++java.awt.image.RescaleOp.getScaleFactors
++java.awt.image.RescaleOp.getRenderingHints
++java.awt.image.RescaleOp.getPoint2D
++java.awt.image.RescaleOp.constructors
++java.awt.image.RescaleOp.getNumFactors
++java.awt.image.RescaleOp.getOffsets
++java.awt.image.DirectColorModel.coerceData
++java.awt.image.WritableRaster.createChild
++java.awt.image.WritableRaster.createWritableChild
++java.awt.image.ComponentColorModel.coerceData
++java.awt.image.SampleModel.setPixels
++java.awt.image.SampleModel.getSample
++java.awt.image.SampleModel.getPixel
++java.awt.image.SampleModel.getSamples
++java.awt.image.SampleModel.getSampleSize
++java.awt.image.SampleModel.getSampleFloat
++java.awt.image.SampleModel.setPixel
++java.awt.image.SampleModel.setSample
++java.awt.image.SampleModel.createDataBuffer
++java.awt.image.SampleModel.getSampleDouble
++java.awt.image.SampleModel.setSamples
++java.awt.image.SampleModel.getPixels
++java.awt.image.BandCombineOp.getPoint2D
++java.awt.image.BandCombineOp.createCompatibleDestRaster
++java.awt.image.BandCombineOp.getBounds2D
++java.awt.image.BandCombineOp.filter
++java.awt.image.LookupOp.constructor
++java.awt.image.LookupOp.filterRaster
++java.awt.image.LookupOp.getRenderingHints
++java.awt.image.LookupOp.getTable
++java.awt.image.LookupOp.getPoint2D
++java.awt.image.Kernel.getYOrigin
++java.awt.image.Kernel.constructor
++java.awt.image.Kernel.getXOrigin
++java.awt.image.Kernel.getHeight
++java.awt.image.Kernel.check
++java.awt.image.Kernel.getKernelData
++java.awt.image.Kernel.getWidth
++java.awt.image.BufferedImage.getSubimage
++java.awt.image.BufferedImage.getSetRgb1Pixel
++java.awt.image.DataBufferByte.getData
++java.awt.image.DataBufferByte.getBankData
++java.awt.image.DataBufferByte.setElem
++java.awt.image.DataBufferByte.getElem
++java.awt.image.DataBufferByte.getDataType
++java.awt.image.DataBufferByte.constructors
++java.awt.image.DataBufferShort.getData
++java.awt.image.DataBufferShort.getBankData
++java.awt.image.DataBufferShort.setElem
++java.awt.image.DataBufferShort.getElem
++java.awt.image.DataBufferShort.getDataType
++java.awt.image.DataBufferShort.constructors
++java.awt.image.Raster.createChild
++java.awt.image.DataBufferInt.getData
++java.awt.image.DataBufferInt.getBankData
++java.awt.image.DataBufferInt.setElem
++java.awt.image.DataBufferInt.getElem
++java.awt.image.DataBufferInt.getDataType
++java.awt.image.DataBufferInt.constructors
++java.awt.image.SinglePixelPackedSampleModel.getBitOffsets
++java.awt.image.SinglePixelPackedSampleModel.getDataElements
++java.awt.image.SinglePixelPackedSampleModel.getSample
++java.awt.image.SinglePixelPackedSampleModel.equals
++java.awt.image.SinglePixelPackedSampleModel.getPixel
++java.awt.image.SinglePixelPackedSampleModel.getNumDataElements
++java.awt.image.SinglePixelPackedSampleModel.getSamples
++java.awt.image.SinglePixelPackedSampleModel.getSampleSize
++java.awt.image.SinglePixelPackedSampleModel.setDataElements
++java.awt.image.SinglePixelPackedSampleModel.constructors
++java.awt.image.SinglePixelPackedSampleModel.getBitMasks
++java.awt.image.SinglePixelPackedSampleModel.setPixel
++java.awt.image.SinglePixelPackedSampleModel.setSample
++java.awt.image.SinglePixelPackedSampleModel.createDataBuffer
++java.awt.image.SinglePixelPackedSampleModel.getOffset
++java.awt.image.SinglePixelPackedSampleModel.createCompatibleSampleModel
++java.awt.image.SinglePixelPackedSampleModel.hashCode
++java.awt.image.SinglePixelPackedSampleModel.getPixels
++java.awt.image.SinglePixelPackedSampleModel.getScanlineStride
++java.awt.image.SinglePixelPackedSampleModel.createSubsetSampleModel
++java.awt.image.ByteLookupTable.getTable
++java.awt.image.ByteLookupTable.lookupPixel
++java.awt.image.ByteLookupTable.constructors
++java.awt.image.MultiPixelPackedSampleModel.getBitOffset
++java.awt.image.MultiPixelPackedSampleModel.getTransferType
++java.awt.image.MultiPixelPackedSampleModel.getDataElements
++java.awt.image.MultiPixelPackedSampleModel.getSample
++java.awt.image.MultiPixelPackedSampleModel.equals
++java.awt.image.MultiPixelPackedSampleModel.getPixel
++java.awt.image.MultiPixelPackedSampleModel.getSampleSize
++java.awt.image.MultiPixelPackedSampleModel.setDataElements
++java.awt.image.MultiPixelPackedSampleModel.constructors
++java.awt.image.MultiPixelPackedSampleModel.setPixel
++java.awt.image.MultiPixelPackedSampleModel.setSample
++java.awt.image.MultiPixelPackedSampleModel.createDataBuffer
++java.awt.image.MultiPixelPackedSampleModel.getPixelBitStride
++java.awt.image.MultiPixelPackedSampleModel.getOffset
++java.awt.image.MultiPixelPackedSampleModel.createCompatibleSampleModel
++java.awt.image.MultiPixelPackedSampleModel.hashCode
++java.awt.image.MultiPixelPackedSampleModel.getScanlineStride
++java.awt.image.MultiPixelPackedSampleModel.createSubsetSampleModel
++java.awt.image.AffineTransformOp.getPoint2D
++java.awt.image.AffineTransformOp.createCompatibleDestRaster
++java.awt.image.AffineTransformOp.constructors
++java.awt.image.AffineTransformOp.getBounds2D
++java.awt.image.PixelInterleavedSampleModel.createSubsetSampleModel
++java.awt.image.BandedSampleModel.setPixels
++java.awt.image.BandedSampleModel.getDataElements
++java.awt.image.BandedSampleModel.getSample
++java.awt.image.BandedSampleModel.getPixel
++java.awt.image.BandedSampleModel.getSamples
++java.awt.image.BandedSampleModel.getSampleFloat
++java.awt.image.BandedSampleModel.setDataElements
++java.awt.image.BandedSampleModel.constructors
++java.awt.image.BandedSampleModel.setPixel
++java.awt.image.BandedSampleModel.setSample
++java.awt.image.BandedSampleModel.createDataBuffer
++java.awt.image.BandedSampleModel.getSampleDouble
++java.awt.image.BandedSampleModel.createCompatibleSampleModel
++java.awt.image.BandedSampleModel.setSamples
++java.awt.image.BandedSampleModel.hashCode
++java.awt.image.BandedSampleModel.getPixels
++java.awt.image.BandedSampleModel.createSubsetSampleModel
++java.awt.image.ColorConvertOp.filterRaster
++java.awt.image.ColorConvertOp.getPoint2D
++java.awt.image.ColorConvertOp.createCompatibleDestRaster
++java.awt.image.ColorConvertOp.constructors
++java.awt.image.ColorConvertOp.getBounds2D
++java.awt.ScrollPaneAdjustable.paramString
++java.awt.GridBagLayout.AdjustForGravity
++java.awt.GridBagLayout.toString
++java.awt.Dimension.clone
++java.awt.Dimension.equals
++java.awt.Dimension.setSize
++java.awt.Dimension.getSize
++java.awt.Dimension.constructors
++java.awt.TextField.getPreferredSize
++java.awt.TextField.getMinimumSize
++java.awt.TextField.constructors
++java.awt.BorderLayout.layoutContainer
++java.awt.BorderLayout.getHgap
++java.awt.BorderLayout.maxLayoutSize
++java.awt.BorderLayout.setVgap
++java.awt.BorderLayout.getVgap
++java.awt.BorderLayout.getLayoutAlignmentY
++java.awt.BorderLayout.Test15
++java.awt.BorderLayout.getLayoutAlignmentX
++java.awt.BorderLayout.setHgap
++java.awt.BorderLayout.constructors
++java.awt.BorderLayout.constants
++java.awt.BorderLayout.preferredLayoutSize
++java.awt.BorderLayout.addLayoutComponent
++java.awt.Scrollbar.testSetBlockIncrement
++java.awt.Scrollbar.testSetUnitIncrement
++java.awt.Scrollbar.testSetValues
++java.awt.List.testSelected
++java.awt.ScrollPane.add
++java.awt.ScrollPane.getScrollPosition
++java.awt.ScrollPane.testSetLayout
++java.awt.ScrollPane.setScrollPosition
++java.awt.ScrollPane.doLayout
++java.awt.Choice.getSelected
++java.awt.Choice.remove
++java.awt.KeyboardFocusManager.getFocusOwner
++java.awt.KeyboardFocusManager.getGlobalPermanentFocusOwner
++java.awt.KeyboardFocusManager.getGlobalFocusOwner
++java.awt.AWTPermission.constructor
++java.awt.ColorClass.decode
++java.awt.ColorClass.serialization
++java.awt.ColorClass.equals
++java.awt.ColorClass.getGreen
++java.awt.ColorClass.constructors
++java.awt.ColorClass.brighter
++java.awt.ColorClass.hashCode
++java.awt.ColorClass.constants
++java.awt.ColorClass.getBlue
++java.awt.ColorClass.getRed
++java.awt.RenderingHints.Key.isCompatibleValue
++java.awt.RenderingHints.clone
++java.awt.RenderingHints.keySet
++java.awt.RenderingHints.put
++java.awt.RenderingHints.add
++java.awt.RenderingHints.putAll
++java.awt.RenderingHints.entrySet
++java.awt.RenderingHints.equals
++java.awt.RenderingHints.size
++java.awt.RenderingHints.get
++java.awt.RenderingHints.values
++java.awt.RenderingHints.containsValue
++java.awt.RenderingHints.isEmpty
++java.awt.RenderingHints.remove
++java.awt.RenderingHints.clear
++java.awt.Panel.TestPanelRepaint
++java.awt.AWTKeyStroke.serialization
++java.awt.AWTKeyStroke.equals
++java.awt.AWTKeyStroke.getAWTKeyStroke
++java.awt.Rectangle.clone
++java.awt.Rectangle.add
++java.awt.Rectangle.setRect
++java.awt.Rectangle.setBounds
++java.awt.Rectangle.equals
++java.awt.Rectangle.intersects
++java.awt.Rectangle.setSize
++java.awt.Rectangle.grow
++java.awt.Rectangle.outcode
++java.awt.Rectangle.union
++java.awt.Rectangle.constructors
++java.awt.Rectangle.intersection
++java.awt.Rectangle.setLocation
++java.awt.Rectangle.translate
++java.awt.Rectangle.contains
++java.awt.Rectangle.isEmpty
++java.awt.Menu.insert
++java.awt.AlphaComposite.getInstance
++java.awt.AlphaComposite.equals
++java.awt.AlphaComposite.getInstance14
++java.awt.AlphaComposite.getRule
++java.awt.Window.security
++java.awt.Window.focusCycleRootTest
++java.awt.EventClass.constants
++java.awt.Frame.isDisplayable1
++java.awt.Frame.isDisplayable5
++java.awt.Frame.isDisplayable4
++java.awt.Frame.isDisplayable3
++java.awt.Frame.isDisplayable6
++java.awt.Frame.menubar
++java.awt.Frame.isDisplayable2
++java.awt.Frame.isDisplayable7
++java.awt.Container.getListeners
++java.awt.Container.setLayout
++java.awt.Container.getPreferredSize
++java.awt.Container.applyComponentOrientation
++java.awt.Container.getComponentAt
++java.awt.Container.getAlignmentY
++java.awt.Container.getAlignmentX
++java.awt.Container.addImpl
++java.awt.FontClass.serialization
++java.awt.MenuItem.label1
++java.awt.font.TextHitInfo.isLeadingEdge
++java.awt.font.TextHitInfo.getOtherHit
++java.awt.font.TextHitInfo.leading
++java.awt.font.TextHitInfo.getOffsetHit
++java.awt.font.TextHitInfo.equals
++java.awt.font.TextHitInfo.getCharIndex
++java.awt.font.TextHitInfo.afterOffset
++java.awt.font.TextHitInfo.getInsertionIndex
++java.awt.font.TextHitInfo.toString
++java.awt.font.TextHitInfo.beforeOffset
++java.awt.font.TextHitInfo.hashCode
++java.awt.font.TextHitInfo.trailing
++java.awt.font.TransformAttribute.serialization
++java.awt.font.TransformAttribute.getTransform
++java.awt.font.TransformAttribute.isIdentity
++java.awt.font.ShapeGraphicAttribute.ShapeGraphicAttributeTest
++java.awt.font.ImageGraphicAttribute.ImageGraphicAttributeTest
++java.awt.font.TextAttribute.toString13
++java.awt.font.TextAttribute.serialization
++java.awt.font.TextAttribute.toString
++java.awt.font.TextAttribute.constants13
++java.awt.font.TextAttribute.constants
++java.awt.GradientPaint.getPoint2
++java.awt.GradientPaint.equals
++java.awt.GradientPaint.getColor1
++java.awt.GradientPaint.constructors
++java.awt.GradientPaint.getColor2
++java.awt.GradientPaint.isCyclic
++java.awt.GradientPaint.getTransparency
++java.awt.GradientPaint.getPoint1
++java.awt.TextComponent.setSelectionStart
++java.awt.Component.repaint
++java.awt.Component.getListeners
++java.awt.Component.setName
++java.awt.Component.properties14
++java.awt.Component.getMaximumSize
++java.awt.Component.setMinimumSize
++java.awt.Component.getForeground
++java.awt.Component.setPreferredSize
++java.awt.Component.properties
++java.awt.Component.requestFocus
++java.awt.Component.isValid
++java.awt.Component.getFont
++java.awt.Component.setMaximumSize
++java.awt.Component.setComponentOrientation
++java.awt.datatransfer.DataFlavor.writeExternal
++java.awt.datatransfer.StringSelection.selection
++java.awt.TextArea.getPreferredSize
++java.awt.TextArea.getMinimumSize
++java.awt.TextArea.testReplaceText
++java.awt.TextArea.constructors
++java.awt.TextArea.testAppendText
++java.awt.TextArea.testInsertText
++java.awt.TextArea.testInvalidConstructorValues
++java.awt.color.ColorSpace.isCS_sRGB
++java.awt.color.ColorSpace.getInstance
++java.awt.FlowLayout.minimumLayoutSize
++java.awt.geom.Ellipse2D.Double.clone
++java.awt.geom.Ellipse2D.Double.getY
++java.awt.geom.Ellipse2D.Double.setFrame
++java.awt.geom.Ellipse2D.Double.getHeight
++java.awt.geom.Ellipse2D.Double.getX
++java.awt.geom.Ellipse2D.Double.constructors
++java.awt.geom.Ellipse2D.Double.getBounds2D
++java.awt.geom.Ellipse2D.Double.isEmpty
++java.awt.geom.Ellipse2D.Double.getWidth
++java.awt.geom.Ellipse2D.Float.clone
++java.awt.geom.Ellipse2D.Float.getY
++java.awt.geom.Ellipse2D.Float.setFrame
++java.awt.geom.Ellipse2D.Float.getHeight
++java.awt.geom.Ellipse2D.Float.getX
++java.awt.geom.Ellipse2D.Float.constructors
++java.awt.geom.Ellipse2D.Float.getBounds2D
++java.awt.geom.Ellipse2D.Float.isEmpty
++java.awt.geom.Ellipse2D.Float.getWidth
++java.awt.geom.Ellipse2D.intersects
++java.awt.geom.Ellipse2D.contains
++java.awt.geom.GeneralPath.getCurrentPoint
++java.awt.geom.GeneralPath.GeneralPath
++java.awt.geom.GeneralPath.append_PathIterator
++java.awt.geom.GeneralPath.contains
++java.awt.geom.GeneralPath.getPathIterator
++java.awt.geom.RectangularShape.getFrame
++java.awt.geom.RectangularShape.setFrame
++java.awt.geom.RectangularShape.getMinY
++java.awt.geom.RectangularShape.intersects
++java.awt.geom.RectangularShape.getMaxY
++java.awt.geom.RectangularShape.getMaxX
++java.awt.geom.RectangularShape.setFrameFromCenter
++java.awt.geom.RectangularShape.setFrameFromDiagonal
++java.awt.geom.RectangularShape.getMinX
++java.awt.geom.RectangularShape.getCenterX
++java.awt.geom.RectangularShape.getCenterY
++java.awt.geom.RectangularShape.contains
++java.awt.geom.RectangularShape.isEmpty
++java.awt.geom.RectangularShape.getBounds
++java.awt.geom.Line2D.clone
++java.awt.geom.Line2D.getP1
++java.awt.geom.Line2D.linesIntersect
++java.awt.geom.Line2D.ptSegDistSq
++java.awt.geom.Line2D.relativeCCW
++java.awt.geom.Line2D.getP2
++java.awt.geom.Line2D.setLine
++java.awt.geom.Line2D.equals
++java.awt.geom.Line2D.intersects
++java.awt.geom.Line2D.ptLineDistSq
++java.awt.geom.Line2D.ptSegDist
++java.awt.geom.Line2D.intersectsLine
++java.awt.geom.Line2D.contains
++java.awt.geom.Line2D.ptLineDist
++java.awt.geom.Line2D.getPathIterator
++java.awt.geom.Line2D.getBounds
++java.awt.geom.Area.clone
++java.awt.geom.Area.add
++java.awt.geom.Area.isRectangular
++java.awt.geom.Area.createTransformedArea
++java.awt.geom.Area.isPolygonal
++java.awt.geom.Area.intersect
++java.awt.geom.Area.equals
++java.awt.geom.Area.exclusiveOr
++java.awt.geom.Area.intersects
++java.awt.geom.Area.reset
++java.awt.geom.Area.isSingular
++java.awt.geom.Area.constructors
++java.awt.geom.Area.getBounds2D
++java.awt.geom.Area.contains
++java.awt.geom.Area.subtract
++java.awt.geom.Area.isEmpty
++java.awt.geom.Area.transform
++java.awt.geom.Area.getBounds
++java.awt.geom.Rectangle2D.Double.clone
++java.awt.geom.Rectangle2D.Double.createIntersection
++java.awt.geom.Rectangle2D.Double.setRect
++java.awt.geom.Rectangle2D.Double.outcode
++java.awt.geom.Rectangle2D.Double.createUnion
++java.awt.geom.Rectangle2D.Double.isEmpty
++java.awt.geom.Rectangle2D.Float.clone
++java.awt.geom.Rectangle2D.Float.createIntersection
++java.awt.geom.Rectangle2D.Float.setRect
++java.awt.geom.Rectangle2D.Float.outcode
++java.awt.geom.Rectangle2D.Float.createUnion
++java.awt.geom.Rectangle2D.Float.isEmpty
++java.awt.geom.Rectangle2D.add
++java.awt.geom.Rectangle2D.setFrame
++java.awt.geom.Rectangle2D.intersect
++java.awt.geom.Rectangle2D.equals
++java.awt.geom.Rectangle2D.intersects
++java.awt.geom.Rectangle2D.union
++java.awt.geom.Rectangle2D.intersectsLine
++java.awt.geom.Rectangle2D.getBounds2D
++java.awt.geom.Rectangle2D.contains
++java.awt.geom.Rectangle2D.constants
++java.awt.geom.Rectangle2D.getPathIterator
++java.awt.geom.Rectangle2D.getBounds
++java.awt.geom.Arc2D.Double.clone
++java.awt.geom.Arc2D.Float.clone
++java.awt.geom.Arc2D.setFrame
++java.awt.geom.Arc2D.setAngleStart
++java.awt.geom.Arc2D.setArc
++java.awt.geom.Arc2D.setArcByTangent
++java.awt.geom.Arc2D.containsAngle
++java.awt.geom.Arc2D.setArcByCenter
++java.awt.geom.Arc2D.intersects
++java.awt.geom.Arc2D.getEndPoint
++java.awt.geom.Arc2D.setAngleExtent
++java.awt.geom.Arc2D.constructors
++java.awt.geom.Arc2D.getBounds2D
++java.awt.geom.Arc2D.contains
++java.awt.geom.Arc2D.getStartPoint
++java.awt.geom.Arc2D.constants
++java.awt.geom.Arc2D.isEmpty
++java.awt.geom.Arc2D.getPathIterator
++java.awt.geom.Arc2D.setAngles
++java.awt.geom.Arc2D.setArcType
++java.awt.geom.QuadCurve2D.Double.getP1
++java.awt.geom.QuadCurve2D.Double.getP2
++java.awt.geom.QuadCurve2D.Double.getCtrlPt
++java.awt.geom.QuadCurve2D.Double.getBounds2D
++java.awt.geom.QuadCurve2D.Double.Double
++java.awt.geom.QuadCurve2D.Double.setCurve
++java.awt.geom.QuadCurve2D.Float.getP1
++java.awt.geom.QuadCurve2D.Float.Float
++java.awt.geom.QuadCurve2D.Float.getP2
++java.awt.geom.QuadCurve2D.Float.getCtrlPt
++java.awt.geom.QuadCurve2D.Float.getBounds2D
++java.awt.geom.QuadCurve2D.Float.setCurve
++java.awt.geom.QuadCurve2D.clone
++java.awt.geom.QuadCurve2D.getFlatness
++java.awt.geom.QuadCurve2D.subdivide
++java.awt.geom.QuadCurve2D.getFlatnessSq
++java.awt.geom.QuadCurve2D.setCurve
++java.awt.geom.QuadCurve2D.getPathIterator
++java.awt.geom.CubicCurve2D.Double.getP1
++java.awt.geom.CubicCurve2D.Double.getCtrlP2
++java.awt.geom.CubicCurve2D.Double.getP2
++java.awt.geom.CubicCurve2D.Double.getBounds2D
++java.awt.geom.CubicCurve2D.Double.Double
++java.awt.geom.CubicCurve2D.Double.setCurve
++java.awt.geom.CubicCurve2D.Double.getCtrlP1
++java.awt.geom.CubicCurve2D.Float.getP1
++java.awt.geom.CubicCurve2D.Float.getCtrlP2
++java.awt.geom.CubicCurve2D.Float.Float
++java.awt.geom.CubicCurve2D.Float.getP2
++java.awt.geom.CubicCurve2D.Float.getBounds2D
++java.awt.geom.CubicCurve2D.Float.setCurve
++java.awt.geom.CubicCurve2D.Float.getCtrlP1
++java.awt.geom.CubicCurve2D.clone
++java.awt.geom.CubicCurve2D.getFlatness
++java.awt.geom.CubicCurve2D.subdivide
++java.awt.geom.CubicCurve2D.getFlatnessSq
++java.awt.geom.CubicCurve2D.setCurve
++java.awt.geom.CubicCurve2D.getPathIterator
++java.awt.geom.FlatteningPathIterator.FlatteningPathIterator
++java.awt.geom.FlatteningPathIterator.getWindingRule
++java.awt.geom.FlatteningPathIterator.getFlatness
++java.awt.geom.FlatteningPathIterator.getRecursionLimit
++java.awt.geom.FlatteningPathIterator.currentSegment
++java.awt.geom.AffineTransform.clone
++java.awt.geom.AffineTransform.preConcatenate
++java.awt.geom.AffineTransform.getRotateInstance
++java.awt.geom.AffineTransform.getMatrix
++java.awt.geom.AffineTransform.inverseTransform
++java.awt.geom.AffineTransform.getScaleInstance
++java.awt.geom.AffineTransform.createInverse
++java.awt.geom.AffineTransform.deltaTransform
++java.awt.geom.AffineTransform.equals
++java.awt.geom.AffineTransform.setTransform
++java.awt.geom.AffineTransform.constructors
++java.awt.geom.AffineTransform.getTranslateInstance
++java.awt.geom.AffineTransform.constants
++java.awt.geom.AffineTransform.concatenate
++java.awt.geom.AffineTransform.getShearInstance
++java.awt.geom.AffineTransform.transform
++java.awt.geom.AffineTransform.getDeterminant
++java.awt.geom.AffineTransform.isIdentity
++java.awt.geom.RoundRectangle2D.intersects
++java.awt.geom.RoundRectangle2D.contains
++java.awt.testName
++java.nio.Buffer.IntBufferTest
++java.nio.Buffer.ShortBufferTest
++java.nio.Buffer.FloatBufferTest
++java.nio.Buffer.LongBufferTest
++java.nio.Buffer.ByteBufferTest
++java.nio.Buffer.DoubleBufferTest
++java.nio.Buffer.CharBufferTest
++java.nio.LongBuffer.compact
++java.nio.ShortBuffer.compact
++java.nio.IntBuffer.compareTo
++java.nio.IntBuffer.compact
++java.nio.channels.Channels.ChannelsTest
++java.nio.channels.Selector.testEmptySelect
++java.nio.channels.FileChannel.copyIO
++java.nio.channels.FileChannel.multibufferIO
++java.nio.channels.FileChannel.truncate
++java.nio.channels.FileChannel.map
++java.nio.channels.FileChannel.offsetSingleBuffer
++java.nio.channels.FileChannel.singlebufferIO
++java.nio.channels.FileChannel.multidirectbufferIO
++java.nio.channels.FileChannel.offsetSingleDirectBuffer
++java.nio.DoubleBuffer.compareTo
++java.nio.DoubleBuffer.compact
++java.nio.ByteBuffer.direct
++java.nio.ByteBuffer.compact
++java.nio.ByteBuffer.TestAllocateDirect
++java.nio.ByteBuffer.GetPut
++java.nio.ByteBuffer.putDouble
++java.nio.ByteBuffer.Order
++java.nio.ByteBuffer.Allocating
++java.nio.CharBuffer.compact
++java.nio.FloatBuffer.compareTo
++java.nio.FloatBuffer.compact
++java.nio.charset.Charset.UTF8Charset
++java.nio.charset.Charset.utf16
++java.nio.charset.Charset.canEncode
++java.nio.charset.Charset.forName
--- /dev/null
--- /dev/null
++name = NSS
++nssDbMode = noDb
++attributes = compatibility
++handleStartupErrors = ignoreMultipleInitialisation
--- /dev/null
--- /dev/null
++# DP: JDK-8141491: Unaligned memory access in Bits.c
++
++--- a/jdk/src/share/native/java/nio/Bits.c
+++++ b/jdk/src/share/native/java/nio/Bits.c
++@@ -70,16 +70,38 @@
++ #define SWAPLONG(x) ((jlong)(((jlong)SWAPINT((jint)(x)) << 32) | \
++ ((jlong)SWAPINT((jint)((x) >> 32)) & 0xffffffff)))
++
+++/* The destination buffer passed to Java_java_nio_Bits_copyFromShor<type>tArray
+++ * function and the source buffer passed to Java_java_nio_Bits_copyTo<type>Array
+++ * may not be aligned on <type>'s boundary. Inform the compiler about this via
+++ * 'unaligned' attribute, provided it supports this attribute. For recent
+++ * compilers, use __has_attribute preprocessor predicate; if it is not available,
+++ * we know that GCC supports it.
+++ */
+++#ifndef __has_attribute
+++#define __has_attribute(x) 0
+++#endif
+++
+++#if defined(__GNUC__) || __has_attribute(aligned)
+++typedef jshort __attribute__((aligned(1))) jshort_unaligned;
+++typedef jint __attribute__((aligned(1))) jint_unaligned;
+++typedef jlong __attribute__((aligned(1))) jlong_unaligned;
+++#else
+++typedef jshort jshort_unaligned;
+++typedef jint jint_unaligned;
+++typedef jlong jlong_unaligned;
+++#endif
+++
++ JNIEXPORT void JNICALL
++ Java_java_nio_Bits_copyFromShortArray(JNIEnv *env, jobject this, jobject src,
++ jlong srcPos, jlong dstAddr, jlong length)
++ {
++ jbyte *bytes;
++ size_t size;
++- jshort *srcShort, *dstShort, *endShort;
+++ jshort *srcShort, *endShort;
+++ jshort_unaligned *dstShort;
++ jshort tmpShort;
++
++- dstShort = (jshort *)jlong_to_ptr(dstAddr);
+++ dstShort = (jshort_unaligned *)jlong_to_ptr(dstAddr);
++
++ while (length > 0) {
++ /* do not change this if-else statement, see WARNING above */
++@@ -111,10 +133,11 @@ Java_java_nio_Bits_copyToShortArray(JNIE
++ {
++ jbyte *bytes;
++ size_t size;
++- jshort *srcShort, *dstShort, *endShort;
+++ jshort_unaligned *srcShort, *endShort;
+++ jshort *dstShort;
++ jshort tmpShort;
++
++- srcShort = (jshort *)jlong_to_ptr(srcAddr);
+++ srcShort = (jshort_unaligned *)jlong_to_ptr(srcAddr);
++
++ while (length > 0) {
++ /* do not change this if-else statement, see WARNING above */
++@@ -146,10 +169,11 @@ Java_java_nio_Bits_copyFromIntArray(JNIE
++ {
++ jbyte *bytes;
++ size_t size;
++- jint *srcInt, *dstInt, *endInt;
+++ jint *srcInt, *endInt;
+++ jint_unaligned *dstInt;
++ jint tmpInt;
++
++- dstInt = (jint *)jlong_to_ptr(dstAddr);
+++ dstInt = (jint_unaligned *)jlong_to_ptr(dstAddr);
++
++ while (length > 0) {
++ /* do not change this code, see WARNING above */
++@@ -181,10 +205,11 @@ Java_java_nio_Bits_copyToIntArray(JNIEnv
++ {
++ jbyte *bytes;
++ size_t size;
++- jint *srcInt, *dstInt, *endInt;
+++ jint_unaligned *srcInt, *endInt;
+++ jint *dstInt;
++ jint tmpInt;
++
++- srcInt = (jint *)jlong_to_ptr(srcAddr);
+++ srcInt = (jint_unaligned *)jlong_to_ptr(srcAddr);
++
++ while (length > 0) {
++ /* do not change this code, see WARNING above */
++@@ -216,10 +241,11 @@ Java_java_nio_Bits_copyFromLongArray(JNI
++ {
++ jbyte *bytes;
++ size_t size;
++- jlong *srcLong, *dstLong, *endLong;
+++ jlong *srcLong, *endLong;
+++ jlong_unaligned *dstLong;
++ jlong tmpLong;
++
++- dstLong = (jlong *)jlong_to_ptr(dstAddr);
+++ dstLong = (jlong_unaligned *)jlong_to_ptr(dstAddr);
++
++ while (length > 0) {
++ /* do not change this code, see WARNING above */
++@@ -251,10 +277,11 @@ Java_java_nio_Bits_copyToLongArray(JNIEn
++ {
++ jbyte *bytes;
++ size_t size;
++- jlong *srcLong, *dstLong, *endLong;
+++ jlong_unaligned *srcLong, *endLong;
+++ jlong *dstLong;
++ jlong tmpLong;
++
++- srcLong = (jlong *)jlong_to_ptr(srcAddr);
+++ srcLong = (jlong_unaligned *)jlong_to_ptr(srcAddr);
++
++ while (length > 0) {
++ /* do not change this code, see WARNING above */
--- /dev/null
--- /dev/null
++
++--- a/common/autoconf/jdk-options.m4
+++++ b/common/autoconf/jdk-options.m4
++@@ -98,7 +98,11 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS
++ [JVM variants (separated by commas) to build (server, client, minimal1, kernel, zero, zeroshark, core) @<:@server@:>@])])
++
++ if test "x$with_jvm_variants" = x; then
++- with_jvm_variants="server"
+++ if test "x$OPENJDK_TARGET_CPU" = xaarch32; then
+++ with_jvm_variants="client";
+++ else
+++ with_jvm_variants="server";
+++ fi
++ fi
++
++ JVM_VARIANTS=",$with_jvm_variants,"
++@@ -161,6 +165,9 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS
++ if test "x$VAR_CPU" = xppc64 -o "x$VAR_CPU" = xppc64le ; then
++ INCLUDE_SA=false
++ fi
+++ if test "x$OPENJDK_TARGET_CPU" = xaarch32; then
+++ INCLUDE_SA=false
+++ fi
++ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
++ INCLUDE_SA=false
++ fi
++--- a/common/autoconf/platform.m4
+++++ b/common/autoconf/platform.m4
++@@ -56,8 +56,8 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
++ VAR_CPU_ENDIAN=little
++ ;;
++ arm*)
++- VAR_CPU=arm
++- VAR_CPU_ARCH=arm
+++ VAR_CPU=aarch32
+++ VAR_CPU_ARCH=aarch32
++ VAR_CPU_BITS=32
++ VAR_CPU_ENDIAN=little
++ ;;
++@@ -346,6 +346,8 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS],
++ elif test "x$OPENJDK_TARGET_OS" != xmacosx && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
++ # On all platforms except MacOSX replace x86_64 with amd64.
++ OPENJDK_TARGET_CPU_LEGACY="amd64"
+++ elif test "x$OPENJDK_TARGET_CPU" = xaarch32; then
+++ OPENJDK_TARGET_CPU_LEGACY="arm"
++ fi
++ AC_SUBST(OPENJDK_TARGET_CPU_LEGACY)
++
++@@ -356,6 +358,8 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS],
++ OPENJDK_TARGET_CPU_LEGACY_LIB="i386"
++ elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
++ OPENJDK_TARGET_CPU_LEGACY_LIB="amd64"
+++ elif test "x$OPENJDK_TARGET_CPU" = xaarch32; then
+++ OPENJDK_TARGET_CPU_LEGACY_LIB="arm"
++ fi
++ AC_SUBST(OPENJDK_TARGET_CPU_LEGACY_LIB)
++
++@@ -389,6 +393,8 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS],
++ elif test "x$OPENJDK_TARGET_OS" != xmacosx && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
++ # On all platforms except macosx, we replace x86_64 with amd64.
++ OPENJDK_TARGET_CPU_OSARCH="amd64"
+++ elif test "x$OPENJDK_TARGET_CPU" = xaarch32; then
+++ OPENJDK_TARGET_CPU_OSARCH="arm"
++ fi
++ AC_SUBST(OPENJDK_TARGET_CPU_OSARCH)
++
++@@ -398,6 +404,8 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS],
++ elif test "x$OPENJDK_TARGET_OS" != xmacosx && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
++ # On all platforms except macosx, we replace x86_64 with amd64.
++ OPENJDK_TARGET_CPU_JLI="amd64"
+++ elif test "x$OPENJDK_TARGET_CPU" = xaarch32; then
+++ OPENJDK_TARGET_CPU_JLI="arm"
++ fi
++ # Now setup the -D flags for building libjli.
++ OPENJDK_TARGET_CPU_JLI_CFLAGS="-DLIBARCHNAME='\"$OPENJDK_TARGET_CPU_JLI\"'"
++--- a/jdk/make/CopyFiles.gmk
+++++ b/jdk/make/CopyFiles.gmk
++@@ -328,9 +328,15 @@ else
++ ifeq ($(CLIENT_AND_SERVER), true)
++ COPY_JVM_CFG_FILE := true
++ else
++- # For zero, the default jvm.cfg file is sufficient
+++ # For zero, the default jvm.cfg file is sufficient.
++ ifeq ($(JVM_VARIANT_ZERO), true)
++ COPY_JVM_CFG_FILE := true
+++ else
+++ ifeq ($(OPENJDK_TARGET_CPU), aarch32)
+++ ifeq ($(JVM_VARIANT_CORE), true)
+++ COPY_JVM_CFG_FILE := true
+++ endif
+++ endif
++ endif
++ endif
++ endif
++--- a/jdk/make/lib/NioLibraries.gmk
+++++ b/jdk/make/lib/NioLibraries.gmk
++@@ -174,6 +174,9 @@ ifeq ($(OPENJDK_TARGET_OS_API), posix)
++ ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc)
++ SCTP_WERROR :=
++ endif
+++ ifeq ($(OPENJDK_TARGET_CPU_ARCH), aarch32)
+++ SCTP_WERROR :=
+++ endif
++
++ $(eval $(call SetupNativeCompilation,BUILD_LIBSCTP, \
++ LIBRARY := sctp, \
++--- a/jdk/make/lib/SoundLibraries.gmk
+++++ b/jdk/make/lib/SoundLibraries.gmk
++@@ -147,6 +147,10 @@ else
++ ifeq ($(OPENJDK_TARGET_CPU), aarch64)
++ LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64
++ endif
+++
+++ ifeq ($(OPENJDK_TARGET_CPU), aarch32)
+++ LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH32
+++ endif
++ endif
++
++ LIBJSOUND_CFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"'
++--- a/jdk/src/share/native/com/sun/media/sound/SoundDefs.h
+++++ b/jdk/src/share/native/com/sun/media/sound/SoundDefs.h
++@@ -46,6 +46,7 @@
++ #define X_PPC64 9
++ #define X_PPC64LE 10
++ #define X_AARCH64 11
+++#define X_AARCH32 12
++
++ // **********************************
++ // Make sure you set X_PLATFORM and X_ARCH defines correctly.
++--- /dev/null
+++++ b/jdk/src/solaris/bin/aarch32/jvm.cfg
++@@ -0,0 +1,34 @@
+++# Copyright (c) 2015, 2015, Oracle and/or its affiliates. All rights reserved.
+++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+++#
+++# This code is free software; you can redistribute it and/or modify it
+++# under the terms of the GNU General Public License version 2 only, as
+++# published by the Free Software Foundation. Oracle designates this
+++# particular file as subject to the "Classpath" exception as provided
+++# by Oracle in the LICENSE file that accompanied this code.
+++#
+++# This code is distributed in the hope that it will be useful, but WITHOUT
+++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+++# version 2 for more details (a copy is included in the LICENSE file that
+++# accompanied this code).
+++#
+++# You should have received a copy of the GNU General Public License version
+++# 2 along with this work; if not, write to the Free Software Foundation,
+++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+++#
+++# Please 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 JVMs that can be used as an option to java, javac, etc.
+++# Order is important -- first in this list is the default JVM.
+++# NOTE that this both this file and its format are UNSUPPORTED and
+++# WILL GO AWAY in a future release.
+++#
+++# You may also select a JVM in an arbitrary location with the
+++# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
+++# and may not be available in a future release.
+++#
+++-server KNOWN
+++-client IGNORE
++--- a/hotspot/make/defs.make
+++++ b/hotspot/make/defs.make
++@@ -333,6 +333,11 @@ ifneq ($(OSNAME),windows)
++ LIBARCH/ppc64 = ppc64
++ LIBARCH/aarch32 = aarch32
++
+++ # Override LIBARCH for aarch32
+++ ifeq ($(ARCH), aarch32)
+++ LIBARCH = arm
+++ endif
+++
++ LP64_ARCH += sparcv9 amd64 ia64 ppc64 zero
++ endif
++
--- /dev/null
--- /dev/null
++# DP: Add missing build bits for AArch64 from the AArch64 branch.
++
++--- a/common/autoconf/build-aux/autoconf-config.sub
+++++ b/common/autoconf/build-aux/autoconf-config.sub
++@@ -264,6 +264,7 @@ case $basic_machine in
++ # Some are omitted here because they have special meanings below.
++ 1750a | 580 \
++ | a29k \
+++ | aarch64 \
++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
++ | am33_2.0 \
++@@ -340,6 +341,7 @@ case $basic_machine in
++ # Recognize the basic CPU types with company name.
++ 580-* \
++ | a29k-* \
+++ | aarch64-* \
++ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
++ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
++--- a/jdk/make/gensrc/GensrcMisc.gmk
+++++ b/jdk/make/gensrc/GensrcMisc.gmk
++@@ -76,7 +76,7 @@ $(eval $(call SetupNativeCompilation,BUI
++ INCLUDE_FILES := $(GENSRC_SOR_SRC_FILE), \
++ LANG := C, \
++ CC := $(BUILD_CC), \
++- LDEXE := $(BUILD_LD), \
+++ LDEXE := $(BUILD_CC), \
++ OBJECT_DIR := $(GENSRC_SOR_BIN), \
++ OUTPUT_DIR := $(GENSRC_SOR_BIN), \
++ PROGRAM := genSocketOptionRegistry))
++--- a/jdk/make/lib/SoundLibraries.gmk
+++++ b/jdk/make/lib/SoundLibraries.gmk
++@@ -143,6 +143,10 @@ else
++ ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
++ LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64LE
++ endif
+++
+++ ifeq ($(OPENJDK_TARGET_CPU), aarch64)
+++ LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64
+++ endif
++ endif
++
++ LIBJSOUND_CFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"'
++--- a/jdk/src/share/native/com/sun/media/sound/SoundDefs.h
+++++ b/jdk/src/share/native/com/sun/media/sound/SoundDefs.h
++@@ -45,6 +45,7 @@
++ #define X_PPC 8
++ #define X_PPC64 9
++ #define X_PPC64LE 10
+++#define X_AARCH64 11
++
++ // **********************************
++ // Make sure you set X_PLATFORM and X_ARCH defines correctly.
++--- /dev/null
+++++ b/jdk/src/solaris/bin/aarch64/jvm.cfg
++@@ -0,0 +1,38 @@
+++# 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.
+++#
+++# List of JVMs that can be used as an option to java, javac, etc.
+++# Order is important -- first in this list is the default JVM.
+++# NOTE that this both this file and its format are UNSUPPORTED and
+++# WILL GO AWAY in a future release.
+++#
+++# You may also select a JVM in an arbitrary location with the
+++# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
+++# and may not be available in a future release.
+++#
+++# n.b. server must be first so it is used as the default
+++-server KNOWN
+++-minimal ERROR
+++-zero KNOWN
+++-shark ERROR
+++-jamvm ERROR
--- /dev/null
--- /dev/null
++--- a/jdk/src/share/classes/java/awt/Toolkit.java
+++++ b/jdk/src/share/classes/java/awt/Toolkit.java
++@@ -894,7 +894,11 @@
++ return null;
++ }
++ });
++- loadAssistiveTechnologies();
+++ try {
+++ loadAssistiveTechnologies();
+++ } catch ( AWTError error) {
+++ // ignore silently
+++ }
++ } finally {
++ // Make sure to always re-enable the JIT.
++ java.lang.Compiler.enable();
--- /dev/null
--- /dev/null
++# DP: fixes an uninitialized memory issue in adlc
++--- a/hotspot/src/share/vm/adlc/formsopt.cpp
+++++ b/hotspot/src/share/vm/adlc/formsopt.cpp
++@@ -440,6 +440,7 @@ FrameForm::FrameForm() {
++ _return_value = NULL;
++ _c_return_value = NULL;
++ _interpreter_frame_pointer_reg = NULL;
+++ _cisc_spilling_operand_name = NULL;
++ }
++
++ FrameForm::~FrameForm() {
--- /dev/null
--- /dev/null
++--- src/jdk/src/share/classes/java/lang/Float.java
+++++ src/jdk/src/share/classes/java/lang/Float.java
++@@ -85,7 +85,9 @@
++ *
++ * @since 1.6
++ */
++- public static final float MIN_NORMAL = 0x1.0p-126f; // 1.17549435E-38f
+++ // FIXME: still required on alpha?
+++ // public static final float MIN_NORMAL = 0x1.0p-126f; // 1.17549435E-38f
+++ public static final float MIN_NORMAL = Float.intBitsToFloat(0x00800000);
++
++ /**
++ * A constant holding the smallest positive nonzero value of type
--- /dev/null
--- /dev/null
++--- a/jdk/src/share/classes/sun/applet/AppletPanel.java
+++++ b/jdk/src/share/classes/sun/applet/AppletPanel.java
++@@ -61,7 +61,7 @@ abstract class AppletPanel extends Panel
++ /**
++ * The applet (if loaded).
++ */
++- Applet applet;
+++ protected Applet applet;
++
++ /**
++ * Applet will allow initialization. Should be
++@@ -157,7 +157,8 @@ abstract class AppletPanel extends Panel
++ * Creates a thread to run the applet. This method is called
++ * each time an applet is loaded and reloaded.
++ */
++- synchronized void createAppletThread() {
+++ //Overridden by NetxPanel.
+++ protected synchronized void createAppletThread() {
++ // Create a thread group for the applet, and start a new
++ // thread to load the applet.
++ String nm = "applet-" + getCode();
++@@ -304,7 +305,7 @@ abstract class AppletPanel extends Panel
++ /**
++ * Get an event from the queue.
++ */
++- synchronized AppletEvent getNextEvent() throws InterruptedException {
+++ protected synchronized AppletEvent getNextEvent() throws InterruptedException {
++ while (queue == null || queue.isEmpty()) {
++ wait();
++ }
++@@ -698,7 +699,8 @@ abstract class AppletPanel extends Panel
++ * applet event processing so that it can be gracefully interrupted from
++ * things like HotJava.
++ */
++- private void runLoader() {
+++ //Overridden by NetxPanel.
+++ protected void runLoader() {
++ if (status != APPLET_DISPOSE) {
++ showAppletStatus("notdisposed");
++ return;
++--- a/jdk/src/share/classes/sun/applet/AppletViewerPanel.java
+++++ b/jdk/src/share/classes/sun/applet/AppletViewerPanel.java
++@@ -42,25 +42,25 @@ import sun.tools.jar.*;
++ *
++ * @author Arthur van Hoff
++ */
++-class AppletViewerPanel extends AppletPanel {
+++public class AppletViewerPanel extends AppletPanel {
++
++ /* Are we debugging? */
++- static boolean debug = false;
+++ protected static boolean debug = false;
++
++ /**
++ * The document url.
++ */
++- URL documentURL;
+++ protected URL documentURL;
++
++ /**
++ * The base url.
++ */
++- URL baseURL;
+++ protected URL baseURL;
++
++ /**
++ * The attributes of the applet.
++ */
++- Hashtable atts;
+++ protected Hashtable<String,String> atts;
++
++ /*
++ * JDK 1.1 serialVersionUID
++@@ -70,7 +70,7 @@ class AppletViewerPanel extends AppletPa
++ /**
++ * Construct an applet viewer and start the applet.
++ */
++- AppletViewerPanel(URL documentURL, Hashtable atts) {
+++ protected AppletViewerPanel(URL documentURL, Hashtable<String,String> atts) {
++ this.documentURL = documentURL;
++ this.atts = atts;
++
++@@ -106,7 +106,7 @@ class AppletViewerPanel extends AppletPa
++ * Get an applet parameter.
++ */
++ public String getParameter(String name) {
++- return (String)atts.get(name.toLowerCase());
+++ return atts.get(name.toLowerCase());
++ }
++
++ /**
++@@ -202,12 +202,12 @@ class AppletViewerPanel extends AppletPa
++ return (AppletContext)getParent();
++ }
++
++- static void debug(String s) {
+++ protected static void debug(String s) {
++ if(debug)
++ System.err.println("AppletViewerPanel:::" + s);
++ }
++
++- static void debug(String s, Throwable t) {
+++ protected static void debug(String s, Throwable t) {
++ if(debug) {
++ t.printStackTrace();
++ debug(s);
--- /dev/null
--- /dev/null
++--- a/jdk/src/share/lib/security/java.security-linux
+++++ b/jdk/src/share/lib/security/java.security-linux
++@@ -186,6 +186,7 @@ keystore.type.compat=true
++ # corresponding RuntimePermission ("accessClassInPackage."+package) has
++ # been granted.
++ package.access=sun.,\
+++ org.GNOME.Accessibility.,\
++ com.sun.xml.internal.,\
++ com.sun.imageio.,\
++ com.sun.istack.internal.,\
--- /dev/null
--- /dev/null
++--- a/common/autoconf/autogen.sh
+++++ b/common/autoconf/autogen.sh
++@@ -61,7 +61,9 @@ fi
++
++ custom_hook=$custom_script_dir/custom-hook.m4
++
+++if test "x${AUTOCONF}" = x; then
++ AUTOCONF="`which autoconf 2> /dev/null | grep -v '^no autoconf in'`"
+++fi
++
++ if test "x${AUTOCONF}" = x; then
++ echo "You need autoconf installed to be able to regenerate the configure script"
--- /dev/null
--- /dev/null
++Index: b/common/autoconf/build-aux/config.guess
++===================================================================
++--- a/common/autoconf/build-aux/config.guess
+++++ b/common/autoconf/build-aux/config.guess
++@@ -1,89 +1,1420 @@
++-#!/bin/sh
+++#! /bin/sh
+++# Attempt to guess a canonical system name.
+++# Copyright 1992-2014 Free Software Foundation, Inc.
+++
+++timestamp='2014-03-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 3 of the License, or
+++# (at your option) any later version.
++ #
++-# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
++-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+++# 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.
++ #
++-# This code is free software; you can redistribute 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 wrapper for the config.guess from autoconf. The latter does not
++-# properly detect 64 bit systems on all platforms. Instead of patching the
++-# autoconf system (which might easily get lost in a future update), we wrap it
++-# and fix the broken property, if needed.
++-
++-DIR=`dirname $0`
++-OUT=`. $DIR/autoconf-config.guess`
++-
++-# Test and fix solaris on x86_64
++-echo $OUT | grep i386-pc-solaris > /dev/null 2> /dev/null
++-if test $? = 0; then
++- # isainfo -n returns either i386 or amd64
++- REAL_CPU=`isainfo -n`
++- OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'`
++-fi
+++# You should have received a copy of the GNU General Public License
+++# along with this program; if not, see <http://www.gnu.org/licenses/>.
+++#
+++# 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. This Exception is an additional permission under section 7
+++# of the GNU General Public License, version 3 ("GPLv3").
+++#
+++# Originally written by Per Bothner.
+++#
+++# You can get the latest version of this script from:
+++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+++#
+++# Please send patches with a ChangeLog entry to config-patches@gnu.org.
++
++-# Test and fix solaris on sparcv9
++-echo $OUT | grep sparc-sun-solaris > /dev/null 2> /dev/null
++-if test $? = 0; then
++- # isainfo -n returns either sparc or sparcv9
++- REAL_CPU=`isainfo -n`
++- OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'`
++-fi
++
++-# Test and fix cygwin on x86_64
++-echo $OUT | grep 86-pc-cygwin > /dev/null 2> /dev/null
++-if test $? != 0; then
++- echo $OUT | grep 86-pc-mingw > /dev/null 2> /dev/null
++-fi
++-if test $? = 0; then
++- case `echo $PROCESSOR_IDENTIFIER | cut -f1 -d' '` in
++- intel64|Intel64|INTEL64|em64t|EM64T|amd64|AMD64|8664|x86_64)
++- REAL_CPU=x86_64
++- OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'`
++- ;;
+++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 1992-2014 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
++-fi
+++done
++
++-# Test and fix architecture string on AIX
++-# On AIX 'config.guess' returns 'powerpc' as architecture but 'powerpc' is
++-# implicitely handled as 32-bit architecture in 'platform.m4' so we check
++-# for the kernel mode rewrite it to 'powerpc64' if we'Re running in 64-bit mode.
++-# The check could also be done with `/usr/sbin/prtconf | grep "Kernel Type" | grep "64-bit"`
++-echo $OUT | grep powerpc-ibm-aix > /dev/null 2> /dev/null
++-if test $? = 0; then
++- if [ -x /bin/getconf ] ; then
++- KERNEL_BITMODE=`getconf KERNEL_BITMODE`
++- if [ "$KERNEL_BITMODE" = "32" ]; then
++- KERNEL_BITMODE=""
++- fi
++- fi
++- OUT=powerpc$KERNEL_BITMODE`echo $OUT | sed -e 's/[^-]*//'`
+++if test $# != 0; then
+++ echo "$me: too many arguments$help" >&2
+++ exit 1
++ fi
++
++-# Test and fix little endian PowerPC64.
++-# TODO: should be handled by autoconf-config.guess.
++-if [ "x$OUT" = x ]; then
++- if [ `uname -m` = ppc64le ]; then
++- if [ `uname -s` = Linux ]; then
++- OUT=powerpc64le-unknown-linux-gnu
++- fi
++- 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
++
++-echo $OUT
+++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
+++
+++case "${UNAME_SYSTEM}" in
+++Linux|GNU|GNU/*)
+++ # If the system lacks a compiler, then just pick glibc.
+++ # We could probably try harder.
+++ LIBC=gnu
+++
+++ eval $set_cc_for_build
+++ cat <<-EOF > $dummy.c
+++ #include <features.h>
+++ #if defined(__UCLIBC__)
+++ LIBC=uclibc
+++ #elif defined(__dietlibc__)
+++ LIBC=dietlibc
+++ #else
+++ LIBC=gnu
+++ #endif
+++ EOF
+++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+++ ;;
+++esac
+++
+++# 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 tuples: *-*-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 -q __ELF__
+++ 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 ;;
+++ *:Bitrig:*:*)
+++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_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'`
+++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+++ exitcode=$?
+++ trap '' 0
+++ exit $exitcode ;;
+++ 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 ;;
+++ s390x:SunOS:*:*)
+++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+++ exit ;;
+++ 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:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+++ echo i386-pc-auroraux${UNAME_RELEASE}
+++ exit ;;
+++ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+++ eval $set_cc_for_build
+++ SUN_ARCH="i386"
+++ # If there is a compiler, see if it is configured for 64-bit objects.
+++ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+++ # This test works for both compilers.
+++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+++ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+++ grep IS_64BIT_ARCH >/dev/null
+++ then
+++ SUN_ARCH="x86_64"
+++ fi
+++ fi
+++ echo ${SUN_ARCH}-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:*:[4567])
+++ 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 -q __LP64__
+++ 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:*:*)
+++ UNAME_PROCESSOR=`/usr/bin/uname -p`
+++ case ${UNAME_PROCESSOR} in
+++ amd64)
+++ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+++ *)
+++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+++ esac
+++ exit ;;
+++ i*:CYGWIN*:*)
+++ echo ${UNAME_MACHINE}-pc-cygwin
+++ exit ;;
+++ *:MINGW64*:*)
+++ echo ${UNAME_MACHINE}-pc-mingw64
+++ exit ;;
+++ *:MINGW*:*)
+++ echo ${UNAME_MACHINE}-pc-mingw32
+++ exit ;;
+++ *:MSYS*:*)
+++ echo ${UNAME_MACHINE}-pc-msys
+++ exit ;;
+++ i*:windows32*:*)
+++ # uname -m includes "-pc" on this system.
+++ echo ${UNAME_MACHINE}-mingw32
+++ exit ;;
+++ i*:PW*:*)
+++ echo ${UNAME_MACHINE}-pc-pw32
+++ exit ;;
+++ *:Interix*:*)
+++ case ${UNAME_MACHINE} in
+++ x86)
+++ echo i586-pc-interix${UNAME_RELEASE}
+++ exit ;;
+++ authenticamd | genuineintel | EM64T)
+++ 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 ;;
+++ 8664:Windows_NT:*)
+++ echo x86_64-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-${LIBC}`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/[-(].*//'`-${LIBC}
+++ exit ;;
+++ i*86:Minix:*:*)
+++ echo ${UNAME_MACHINE}-pc-minix
+++ exit ;;
+++ aarch64:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ exit ;;
+++ aarch64_be:Linux:*:*)
+++ UNAME_MACHINE=aarch64_be
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ 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 -q ld.so.1
+++ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ exit ;;
+++ arc:Linux:*:* | arceb:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ 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-${LIBC}
+++ else
+++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+++ | grep -q __ARM_PCS_VFP
+++ then
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+++ else
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+++ fi
+++ fi
+++ exit ;;
+++ avr32*:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ exit ;;
+++ cris:Linux:*:*)
+++ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+++ exit ;;
+++ crisv32:Linux:*:*)
+++ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+++ exit ;;
+++ frv:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ exit ;;
+++ hexagon:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ exit ;;
+++ i*86:Linux:*:*)
+++ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+++ exit ;;
+++ ia64:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ exit ;;
+++ m32r*:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ exit ;;
+++ m68*:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ exit ;;
+++ mips:Linux:*:* | mips64:Linux:*:*)
+++ eval $set_cc_for_build
+++ sed 's/^ //' << EOF >$dummy.c
+++ #undef CPU
+++ #undef ${UNAME_MACHINE}
+++ #undef ${UNAME_MACHINE}el
+++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+++ CPU=${UNAME_MACHINE}el
+++ #else
+++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+++ CPU=${UNAME_MACHINE}
+++ #else
+++ CPU=
+++ #endif
+++ #endif
+++EOF
+++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+++ ;;
+++ openrisc*:Linux:*:*)
+++ echo or1k-unknown-linux-${LIBC}
+++ exit ;;
+++ or32:Linux:*:* | or1k*:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ exit ;;
+++ padre:Linux:*:*)
+++ echo sparc-unknown-linux-${LIBC}
+++ exit ;;
+++ parisc64:Linux:*:* | hppa64:Linux:*:*)
+++ echo hppa64-unknown-linux-${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-${LIBC} ;;
+++ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+++ *) echo hppa-unknown-linux-${LIBC} ;;
+++ esac
+++ exit ;;
+++ ppc64:Linux:*:*)
+++ echo powerpc64-unknown-linux-${LIBC}
+++ exit ;;
+++ ppc:Linux:*:*)
+++ echo powerpc-unknown-linux-${LIBC}
+++ exit ;;
+++ ppc64le:Linux:*:*)
+++ echo powerpc64le-unknown-linux-${LIBC}
+++ exit ;;
+++ ppcle:Linux:*:*)
+++ echo powerpcle-unknown-linux-${LIBC}
+++ exit ;;
+++ s390:Linux:*:* | s390x:Linux:*:*)
+++ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+++ exit ;;
+++ sh64*:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ exit ;;
+++ sh*:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ exit ;;
+++ sparc:Linux:*:* | sparc64:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ exit ;;
+++ tile*:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ exit ;;
+++ vax:Linux:*:*)
+++ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+++ exit ;;
+++ x86_64:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ exit ;;
+++ xtensa*:Linux:*:*)
+++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+++ 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.[02]*:*)
+++ 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 i586.
+++ # Note: whatever this is, it MUST be the same as what config.sub
+++ # prints for the "djgpp" host, or else GDB configury will decide that
+++ # this is a cross-build.
+++ echo i586-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; } ;;
+++ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+++ OS_REL='.3'
+++ 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; }
+++ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+++ && { echo i586-ncr-sysv4.3${OS_REL}; 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.[02]*:*)
+++ 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 ;;
+++ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+++ echo i586-pc-haiku
+++ exit ;;
+++ x86_64:Haiku:*:*)
+++ echo x86_64-unknown-haiku
+++ 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
+++ if test "$UNAME_PROCESSOR" = unknown ; then
+++ UNAME_PROCESSOR=powerpc
+++ fi
+++ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+++ grep IS_64BIT_ARCH >/dev/null
+++ then
+++ case $UNAME_PROCESSOR in
+++ i386) UNAME_PROCESSOR=x86_64 ;;
+++ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+++ esac
+++ fi
+++ fi
+++ elif test "$UNAME_PROCESSOR" = i386 ; then
+++ # Avoid executing cc on OS X 10.9, as it ships with a stub
+++ # that puts up a graphical alert prompting to install
+++ # developer tools. Any system running Mac OS X 10.7 or
+++ # later (Darwin 11 and later) is required to have a 64-bit
+++ # processor. This is not true of the ARM version of Darwin
+++ # that Apple uses in portable devices.
+++ UNAME_PROCESSOR=x86_64
+++ fi
+++ 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 ;;
+++ NEO-?:NONSTOP_KERNEL:*:*)
+++ echo neo-tandem-nsk${UNAME_RELEASE}
+++ 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 ;;
+++ i*86:AROS:*:*)
+++ echo ${UNAME_MACHINE}-pc-aros
+++ exit ;;
+++ x86_64:VMkernel:*:*)
+++ echo ${UNAME_MACHINE}-unknown-esx
+++ exit ;;
+++esac
+++
+++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:
++Index: b/common/autoconf/build-aux/config.sub
++===================================================================
++--- a/common/autoconf/build-aux/config.sub
+++++ b/common/autoconf/build-aux/config.sub
++@@ -1,70 +1,40 @@
++ #! /bin/sh
+++# Configuration validation subroutine script.
+++# Copyright 1992-2014 Free Software Foundation, Inc.
++
++-#
++-# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
++-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++-#
++-# This code is free software; you can redistribute it and/or modify it
++-# under the terms of the GNU General Public License version 2 only, as
++-# published by the Free Software Foundation. Oracle designates this
++-# particular file as subject to the "Classpath" exception as provided
++-# by Oracle in the LICENSE file that accompanied this code.
++-#
++-# This code is distributed in the hope that it will be useful, but WITHOUT
++-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++-# version 2 for more details (a copy is included in the LICENSE file that
++-# accompanied this code).
++-#
++-# You should have received a copy of the GNU General Public License version
++-# 2 along with this work; if not, write to the Free Software Foundation,
++-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++-#
++-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++-# or visit www.oracle.com if you need additional information or have any
++-# questions.
++-#
+++timestamp='2014-05-01'
++
++-# 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
+++# 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 3 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.
+++# 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.
+++# along with this program; if not, see <http://www.gnu.org/licenses/>.
++ #
++ # 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.
+++# the same distribution terms that you use for the rest of that
+++# program. This Exception is an additional permission under section 7
+++# of the GNU General Public License, version 3 ("GPLv3").
++
++
++-# Please send patches to <config-patches@gnu.org>. Submit a context
++-# diff and a properly formatted ChangeLog entry.
+++# Please send patches with a ChangeLog entry to config-patches@gnu.org.
++ #
++ # 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.
++
+++# You can get the latest version of this script from:
+++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+++
++ # 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.
++@@ -98,8 +68,7 @@ Report bugs and patches to <config-patch
++ 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.
+++Copyright 1992-2014 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."
++@@ -146,12 +115,18 @@ esac
++ # 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* | \
+++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+++ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+++ knetbsd*-gnu* | netbsd*-gnu* | \
+++ kopensolaris*-gnu* | \
++ storm-chaos* | os2-emx* | rtmk-nova*)
++ os=-$maybe_os
++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
++ ;;
+++ android-linux)
+++ os=-linux-android
+++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+++ ;;
++ *)
++ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
++ if [ $basic_machine != $1 ]
++@@ -174,10 +149,13 @@ case $os in
++ -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)
+++ -apple | -axis | -knuth | -cray | -microblaze*)
++ os=
++ basic_machine=$1
++ ;;
+++ -bluegene*)
+++ os=-cnk
+++ ;;
++ -sim | -cisco | -oki | -wec | -winbond)
++ os=
++ basic_machine=$1
++@@ -192,10 +170,10 @@ case $os in
++ os=-chorusos
++ basic_machine=$1
++ ;;
++- -chorusrdb)
++- os=-chorusrdb
+++ -chorusrdb)
+++ os=-chorusrdb
++ basic_machine=$1
++- ;;
+++ ;;
++ -hiux*)
++ os=-hiuxwe2
++ ;;
++@@ -240,6 +218,12 @@ case $os in
++ -isc*)
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
+++ -lynx*178)
+++ os=-lynxos178
+++ ;;
+++ -lynx*5)
+++ os=-lynxos5
+++ ;;
++ -lynx*)
++ os=-lynxos
++ ;;
++@@ -264,59 +248,85 @@ case $basic_machine in
++ # Some are omitted here because they have special meanings below.
++ 1750a | 580 \
++ | a29k \
+++ | aarch64 | aarch64_be \
++ | 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 \
+++ | arc | arceb \
+++ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+++ | avr | avr32 \
+++ | be32 | be64 \
++ | bfin \
++- | c4x | clipper \
+++ | c4x | c8051 | clipper \
++ | d10v | d30v | dlx | dsp16xx \
+++ | epiphany \
++ | fido | fr30 | frv \
++ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+++ | hexagon \
++ | i370 | i860 | i960 | ia64 \
++ | ip2k | iq2000 \
+++ | k1om \
+++ | le32 | le64 \
+++ | lm32 \
++ | m32c | m32r | m32rle | m68000 | m68k | m88k \
++- | maxq | mb | microblaze | mcore | mep \
+++ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
++ | mips | mipsbe | mipseb | mipsel | mipsle \
++ | mips16 \
++ | mips64 | mips64el \
++- | mips64vr | mips64vrel \
+++ | mips64octeon | mips64octeonel \
++ | mips64orion | mips64orionel \
+++ | mips64r5900 | mips64r5900el \
+++ | mips64vr | mips64vrel \
++ | mips64vr4100 | mips64vr4100el \
++ | mips64vr4300 | mips64vr4300el \
++ | mips64vr5000 | mips64vr5000el \
++ | mips64vr5900 | mips64vr5900el \
++ | mipsisa32 | mipsisa32el \
++ | mipsisa32r2 | mipsisa32r2el \
+++ | mipsisa32r6 | mipsisa32r6el \
++ | mipsisa64 | mipsisa64el \
++ | mipsisa64r2 | mipsisa64r2el \
+++ | mipsisa64r6 | mipsisa64r6el \
++ | mipsisa64sb1 | mipsisa64sb1el \
++ | mipsisa64sr71k | mipsisa64sr71kel \
+++ | mipsr5900 | mipsr5900el \
++ | mipstx39 | mipstx39el \
++ | mn10200 | mn10300 \
+++ | moxie \
++ | mt \
++ | msp430 \
++- | nios | nios2 \
+++ | nds32 | nds32le | nds32be \
+++ | nios | nios2 | nios2eb | nios2el \
++ | ns16k | ns32k \
++- | or32 \
+++ | open8 | or1k | or1knd | or32 \
++ | pdp10 | pdp11 | pj | pjl \
++- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+++ | powerpc | powerpc64 | powerpc64le | powerpcle \
++ | pyramid \
+++ | rl78 | rx \
++ | score \
++- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+++ | sh | sh[1234] | sh[24]a | sh[24]aeb | 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 \
+++ | spu \
+++ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+++ | ubicom32 \
+++ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
++ | we32k \
++- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
++- | z8k)
+++ | x86 | xc16x | xstormy16 | xtensa \
+++ | z8k | z80)
++ basic_machine=$basic_machine-unknown
++ ;;
++- m6811 | m68hc11 | m6812 | m68hc12)
++- # Motorola 68HC11/12.
+++ c54x)
+++ basic_machine=tic54x-unknown
+++ ;;
+++ c55x)
+++ basic_machine=tic55x-unknown
+++ ;;
+++ c6x)
+++ basic_machine=tic6x-unknown
+++ ;;
+++ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
++ basic_machine=$basic_machine-unknown
++ os=-none
++ ;;
++@@ -326,6 +336,21 @@ case $basic_machine in
++ basic_machine=mt-unknown
++ ;;
++
+++ strongarm | thumb | xscale)
+++ basic_machine=arm-unknown
+++ ;;
+++ xgate)
+++ basic_machine=$basic_machine-unknown
+++ os=-none
+++ ;;
+++ xscaleeb)
+++ basic_machine=armeb-unknown
+++ ;;
+++
+++ xscaleel)
+++ basic_machine=armel-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.
++@@ -340,64 +365,82 @@ case $basic_machine in
++ # Recognize the basic CPU types with company name.
++ 580-* \
++ | a29k-* \
+++ | aarch64-* | aarch64_be-* \
++ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
++ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
++- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
++ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
++ | avr-* | avr32-* \
+++ | be32-* | be64-* \
++ | bfin-* | bs2000-* \
++- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
++- | clipper-* | craynv-* | cydra-* \
+++ | c[123]* | c30-* | [cjt]90-* | c4x-* \
+++ | c8051-* | 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-* \
+++ | hexagon-* \
++ | i*86-* | i860-* | i960-* | ia64-* \
++ | ip2k-* | iq2000-* \
+++ | k1om-* \
+++ | le32-* | le64-* \
+++ | lm32-* \
++ | m32c-* | m32r-* | m32rle-* \
++ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
++- | m88110-* | m88k-* | maxq-* | mcore-* \
+++ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+++ | microblaze-* | microblazeel-* \
++ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
++ | mips16-* \
++ | mips64-* | mips64el-* \
++- | mips64vr-* | mips64vrel-* \
+++ | mips64octeon-* | mips64octeonel-* \
++ | mips64orion-* | mips64orionel-* \
+++ | mips64r5900-* | mips64r5900el-* \
+++ | mips64vr-* | mips64vrel-* \
++ | mips64vr4100-* | mips64vr4100el-* \
++ | mips64vr4300-* | mips64vr4300el-* \
++ | mips64vr5000-* | mips64vr5000el-* \
++ | mips64vr5900-* | mips64vr5900el-* \
++ | mipsisa32-* | mipsisa32el-* \
++ | mipsisa32r2-* | mipsisa32r2el-* \
+++ | mipsisa32r6-* | mipsisa32r6el-* \
++ | mipsisa64-* | mipsisa64el-* \
++ | mipsisa64r2-* | mipsisa64r2el-* \
+++ | mipsisa64r6-* | mipsisa64r6el-* \
++ | mipsisa64sb1-* | mipsisa64sb1el-* \
++ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+++ | mipsr5900-* | mipsr5900el-* \
++ | mipstx39-* | mipstx39el-* \
++ | mmix-* \
++ | mt-* \
++ | msp430-* \
++- | nios-* | nios2-* \
+++ | nds32-* | nds32le-* | nds32be-* \
+++ | nios-* | nios2-* | nios2eb-* | nios2el-* \
++ | none-* | np1-* | ns16k-* | ns32k-* \
+++ | open8-* \
+++ | or1k*-* \
++ | orion-* \
++ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
++- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
++ | pyramid-* \
++- | romp-* | rs6000-* \
++- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+++ | rl78-* | romp-* | rs6000-* | rx-* \
+++ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | 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-* \
+++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+++ | tahoe-* \
++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+++ | tile*-* \
++ | tron-* \
++- | v850-* | v850e-* | vax-* \
+++ | ubicom32-* \
+++ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+++ | vax-* \
++ | we32k-* \
++- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+++ | x86-* | x86_64-* | xc16x-* | xps100-* \
++ | xstormy16-* | xtensa*-* \
++ | ymp-* \
++- | z8k-*)
+++ | z8k-* | z80-*)
++ ;;
++ # Recognize the basic CPU types without company name, with glob match.
++ xtensa*)
++@@ -419,7 +462,7 @@ case $basic_machine in
++ basic_machine=a29k-amd
++ os=-udi
++ ;;
++- abacus)
+++ abacus)
++ basic_machine=abacus-unknown
++ ;;
++ adobe68k)
++@@ -465,6 +508,10 @@ case $basic_machine in
++ basic_machine=m68k-apollo
++ os=-bsd
++ ;;
+++ aros)
+++ basic_machine=i386-pc
+++ os=-aros
+++ ;;
++ aux)
++ basic_machine=m68k-apple
++ os=-aux
++@@ -481,10 +528,27 @@ case $basic_machine in
++ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=-linux
++ ;;
+++ bluegene*)
+++ basic_machine=powerpc-ibm
+++ os=-cnk
+++ ;;
+++ c54x-*)
+++ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+++ ;;
+++ c55x-*)
+++ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+++ ;;
+++ c6x-*)
+++ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+++ ;;
++ c90)
++ basic_machine=c90-cray
++ os=-unicos
++ ;;
+++ cegcc)
+++ basic_machine=arm-unknown
+++ os=-cegcc
+++ ;;
++ convex-c1)
++ basic_machine=c1-convex
++ os=-bsd
++@@ -513,7 +577,7 @@ case $basic_machine in
++ basic_machine=craynv-cray
++ os=-unicosmp
++ ;;
++- cr16)
+++ cr16 | cr16-*)
++ basic_machine=cr16-unknown
++ os=-elf
++ ;;
++@@ -552,6 +616,10 @@ case $basic_machine in
++ basic_machine=m88k-motorola
++ os=-sysv3
++ ;;
+++ dicos)
+++ basic_machine=i686-pc
+++ os=-dicos
+++ ;;
++ djgpp)
++ basic_machine=i586-pc
++ os=-msdosdjgpp
++@@ -667,7 +735,6 @@ case $basic_machine in
++ 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
++@@ -725,8 +792,15 @@ case $basic_machine in
++ basic_machine=ns32k-utek
++ os=-sysv
++ ;;
+++ microblaze*)
+++ basic_machine=microblaze-xilinx
+++ ;;
+++ mingw64)
+++ basic_machine=x86_64-pc
+++ os=-mingw64
+++ ;;
++ mingw32)
++- basic_machine=i386-pc
+++ basic_machine=i686-pc
++ os=-mingw32
++ ;;
++ mingw32ce)
++@@ -761,10 +835,18 @@ case $basic_machine in
++ ms1-*)
++ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
++ ;;
+++ msys)
+++ basic_machine=i686-pc
+++ os=-msys
+++ ;;
++ mvs)
++ basic_machine=i370-ibm
++ os=-mvs
++ ;;
+++ nacl)
+++ basic_machine=le32-unknown
+++ os=-nacl
+++ ;;
++ ncr3000)
++ basic_machine=i486-ncr
++ os=-sysv4
++@@ -829,6 +911,12 @@ case $basic_machine in
++ np1)
++ basic_machine=np1-gould
++ ;;
+++ neo-tandem)
+++ basic_machine=neo-tandem
+++ ;;
+++ nse-tandem)
+++ basic_machine=nse-tandem
+++ ;;
++ nsr-tandem)
++ basic_machine=nsr-tandem
++ ;;
++@@ -911,9 +999,10 @@ case $basic_machine in
++ ;;
++ power) basic_machine=power-ibm
++ ;;
++- ppc) basic_machine=powerpc-unknown
+++ ppc | ppcbe) basic_machine=powerpc-unknown
++ ;;
++- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+++ ppc-* | ppcbe-*)
+++ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ ppcle | powerpclittle | ppc-le | powerpc-little)
++ basic_machine=powerpcle-unknown
++@@ -938,7 +1027,11 @@ case $basic_machine in
++ basic_machine=i586-unknown
++ os=-pw32
++ ;;
++- rdos)
+++ rdos | rdos64)
+++ basic_machine=x86_64-pc
+++ os=-rdos
+++ ;;
+++ rdos32)
++ basic_machine=i386-pc
++ os=-rdos
++ ;;
++@@ -1007,6 +1100,9 @@ case $basic_machine in
++ basic_machine=i860-stratus
++ os=-sysv4
++ ;;
+++ strongarm-* | thumb-*)
+++ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+++ ;;
++ sun2)
++ basic_machine=m68000-sun
++ ;;
++@@ -1063,20 +1159,8 @@ case $basic_machine in
++ 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
+++ basic_machine=$basic_machine-unknown
++ os=-linux-gnu
++ ;;
++ tx39)
++@@ -1146,6 +1230,9 @@ case $basic_machine in
++ xps | xps100)
++ basic_machine=xps100-honeywell
++ ;;
+++ xscale-* | xscalee[bl]-*)
+++ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+++ ;;
++ ymp)
++ basic_machine=ymp-cray
++ os=-unicos
++@@ -1154,6 +1241,10 @@ case $basic_machine in
++ basic_machine=z8k-unknown
++ os=-sim
++ ;;
+++ z80-*-coff)
+++ basic_machine=z80-unknown
+++ os=-sim
+++ ;;
++ none)
++ basic_machine=none-none
++ os=-none
++@@ -1192,7 +1283,7 @@ case $basic_machine in
++ we32k)
++ basic_machine=we32k-att
++ ;;
++- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+++ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
++ basic_machine=sh-unknown
++ ;;
++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
++@@ -1239,9 +1330,12 @@ esac
++ if [ x"$os" != x"" ]
++ then
++ case $os in
++- # First match some system type aliases
++- # that might get confused with valid system types.
+++ # First match some system type aliases
+++ # that might get confused with valid system types.
++ # -solaris* is a basic system type, with this one exception.
+++ -auroraux)
+++ os=-auroraux
+++ ;;
++ -solaris1 | -solaris1.*)
++ os=`echo $os | sed -e 's|solaris1|sunos4|'`
++ ;;
++@@ -1262,21 +1356,23 @@ case $os in
++ # 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* \
+++ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+++ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+++ | -sym* | -kopensolaris* | -plan9* \
++ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
++- | -aos* \
+++ | -aos* | -aros* \
++ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
++ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
++ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
++- | -openbsd* | -solidbsd* \
+++ | -bitrig* | -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* \
+++ | -chorusos* | -chorusrdb* | -cegcc* \
+++ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+++ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+++ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
++ | -uxpv* | -beos* | -mpeix* | -udk* \
++ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
++ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
++@@ -1284,7 +1380,7 @@ case $os in
++ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
++ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
++ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
++- | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
++ # Remember, each alternative MUST END IN *, to match a version number.
++ ;;
++ -qnx*)
++@@ -1323,7 +1419,7 @@ case $os in
++ -opened*)
++ os=-openedition
++ ;;
++- -os400*)
+++ -os400*)
++ os=-os400
++ ;;
++ -wince*)
++@@ -1372,7 +1468,7 @@ case $os in
++ -sinix*)
++ os=-sysv4
++ ;;
++- -tpf*)
+++ -tpf*)
++ os=-tpf
++ ;;
++ -triton*)
++@@ -1408,12 +1504,14 @@ case $os in
++ -aros*)
++ os=-aros
++ ;;
++- -kaos*)
++- os=-kaos
++- ;;
++ -zvmoe)
++ os=-zvmoe
++ ;;
+++ -dicos*)
+++ os=-dicos
+++ ;;
+++ -nacl*)
+++ ;;
++ -none)
++ ;;
++ *)
++@@ -1436,10 +1534,10 @@ else
++ # system, and we'll never get to this point.
++
++ case $basic_machine in
++- score-*)
+++ score-*)
++ os=-elf
++ ;;
++- spu-*)
+++ spu-*)
++ os=-elf
++ ;;
++ *-acorn)
++@@ -1451,8 +1549,23 @@ case $basic_machine in
++ arm*-semi)
++ os=-aout
++ ;;
++- c4x-* | tic4x-*)
++- os=-coff
+++ c4x-* | tic4x-*)
+++ os=-coff
+++ ;;
+++ c8051-*)
+++ os=-elf
+++ ;;
+++ hexagon-*)
+++ os=-elf
+++ ;;
+++ tic54x-*)
+++ os=-coff
+++ ;;
+++ tic55x-*)
+++ os=-coff
+++ ;;
+++ tic6x-*)
+++ os=-coff
++ ;;
++ # This must come before the *-dec entry.
++ pdp10-*)
++@@ -1472,14 +1585,11 @@ case $basic_machine in
++ ;;
++ m68000-sun)
++ os=-sunos3
++- # This also exists in the configure program, but was not the
++- # default.
++- # os=-sunos4
++ ;;
++ m68*-cisco)
++ os=-aout
++ ;;
++- mep-*)
+++ mep-*)
++ os=-elf
++ ;;
++ mips*-cisco)
++@@ -1506,7 +1616,7 @@ case $basic_machine in
++ *-ibm)
++ os=-aix
++ ;;
++- *-knuth)
+++ *-knuth)
++ os=-mmixware
++ ;;
++ *-wec)
++@@ -1611,7 +1721,7 @@ case $basic_machine in
++ -sunos*)
++ vendor=sun
++ ;;
++- -aix*)
+++ -cnk*|-aix*)
++ vendor=ibm
++ ;;
++ -beos*)
--- /dev/null
--- /dev/null
++Description: Build the langtools with GCJ. This patch is incomplete but may be
++ used as a starting point for someone really willing to bootstrap OpenJDK 8
++ with GCJ. The compilation fails due to the missing java.nio.file API, several
++ classes would have to be modified to work without this package. It's possible
++ to ignore ~100 errors by skipping the compilation of jdeps (delete the
++ langtools/src/share/classes/com/sun/tools/jdeps directory). The build will then
++ fail on the BUILD_FULL_JAVAC phase.
++Author: Emmanuel Bourg <ebourg@apache.org>
++--- a/common/autoconf/boot-jdk.m4
+++++ b/common/autoconf/boot-jdk.m4
++@@ -54,7 +54,7 @@
++ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
++
++ # Extra M4 quote needed to protect [] in grep expression.
++- [FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`]
+++ [FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[5678]\.'`]
++ if test "x$FOUND_VERSION_78" = x; then
++ AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring])
++ AC_MSG_NOTICE([(Your Boot JDK must be version 7 or 8)])
++@@ -278,7 +278,7 @@
++ BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA,java)
++ BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC,javac)
++ BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAH,javah)
++- BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAP,javap)
+++ #BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAP,javap)
++ BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR,jar)
++ BOOTJDK_CHECK_TOOL_IN_BOOTJDK(RMIC,rmic)
++ BOOTJDK_CHECK_TOOL_IN_BOOTJDK(NATIVE2ASCII,native2ascii)
++@@ -286,7 +286,7 @@
++ # Finally, set some other options...
++
++ # When compiling code to be executed by the Boot JDK, force jdk7 compatibility.
++- BOOT_JDK_SOURCETARGET="-source 7 -target 7"
+++ BOOT_JDK_SOURCETARGET="-source 1.7 -target 1.7"
++ AC_SUBST(BOOT_JDK_SOURCETARGET)
++ AC_SUBST(JAVAC_FLAGS)
++ ])
++--- a/langtools/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java
+++++ b/langtools/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java
++@@ -1163,7 +1163,8 @@
++ }
++
++ protected ZipFormatException(String message, Throwable cause) {
++- super(message, cause);
+++ super(message);
+++ initCause(cause);
++ }
++ }
++ }
++--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/JNIWriter.java
+++++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/JNIWriter.java
++@@ -218,7 +218,7 @@
++ println(out, cppGuardEnd());
++ println(out, guardEnd(cname));
++ } catch (TypeSignature.SignatureException e) {
++- throw new IOException(e);
+++ throw (IOException) new IOException().initCause(e);
++ }
++ }
++
++--- a/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java
+++++ b/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java
++@@ -40,7 +40,6 @@
++ import java.nio.CharBuffer;
++ import java.nio.charset.CharsetDecoder;
++ import javax.tools.JavaFileObject;
++-import java.text.Normalizer;
++
++ /**
++ * A subclass of JavaFileObject representing regular files.
++@@ -182,17 +181,6 @@
++ if (name.equals(n)) {
++ return true;
++ }
++- if (isMacOS && Normalizer.isNormalized(name, Normalizer.Form.NFD)
++- && Normalizer.isNormalized(n, Normalizer.Form.NFC)) {
++- // On Mac OS X it is quite possible to file name and class
++- // name normalized in a different way - in that case we have to normalize file name
++- // to the Normal Form Compised (NFC)
++- String normName = Normalizer.normalize(name, Normalizer.Form.NFC);
++- if (normName.equals(n)) {
++- this.name = normName;
++- return true;
++- }
++- }
++
++ if (name.equalsIgnoreCase(n)) {
++ try {
++--- a/langtools/src/share/classes/com/sun/tools/javac/tree/DocPretty.java
+++++ b/langtools/src/share/classes/com/sun/tools/javac/tree/DocPretty.java
++@@ -67,7 +67,7 @@
++ tree.accept(this, null);
++ }
++ } catch (UncheckedIOException ex) {
++- throw new IOException(ex.getMessage(), ex);
+++ throw (IOException) new IOException(ex.getMessage()).initCause(ex);
++ }
++ }
++
++--- a/make/common/JavaCompilation.gmk
+++++ b/make/common/JavaCompilation.gmk
++@@ -549,7 +549,7 @@
++ $$(call ListPathsSafely,$1_SRCS,\n, >> $$($1_BIN)/_the.$1_batch.tmp)
++ $(ECHO) Compiling `$(WC) $$($1_BIN)/_the.$1_batch.tmp | $(TR) -s ' ' | $(CUT) -f 2 -d ' '` files for $1
++ ($$($1_JVM) $$($1_JAVAC) $$($1_FLAGS) \
++- -implicit:none -sourcepath "$$($1_SRCROOTSC)" \
+++ -sourcepath "$$($1_SRCROOTSC)" \
++ -d $$($1_BIN) $$($1_HEADERS_ARG) @$$($1_BIN)/_the.$1_batch.tmp && \
++ $(MV) $$($1_BIN)/_the.$1_batch.tmp $$($1_BIN)/_the.$1_batch)
++
++--- a/langtools/src/share/classes/com/sun/tools/javac/util/ServiceLoader.java
+++++ b/langtools/src/share/classes/com/sun/tools/javac/util/ServiceLoader.java
++@@ -38,7 +38,6 @@
++ import java.util.List;
++ import java.util.Map;
++ import java.util.NoSuchElementException;
++-import java.util.Objects;
++ import java.util.ServiceConfigurationError;
++
++
++@@ -70,7 +69,7 @@
++ private ClassLoader loader;
++
++ // Cached providers, in instantiation order
++- private LinkedHashMap<String,S> providers = new LinkedHashMap<>();
+++ private LinkedHashMap<String,S> providers = new LinkedHashMap<String,S>();
++
++ // The current lazy-lookup iterator
++ private LazyIterator lookupIterator;
++@@ -92,7 +91,10 @@
++ }
++
++ private ServiceLoader(Class<S> svc, ClassLoader cl) {
++- service = Objects.requireNonNull(svc, "Service interface cannot be null");
+++ if (svc == null) {
+++ throw new NullPointerException("Service interface cannot be null");
+++ }
+++ service = svc;
++ loader = (cl == null) ? ClassLoader.getSystemClassLoader() : cl;
++ reload();
++ }
++@@ -170,7 +172,7 @@
++ {
++ InputStream in = null;
++ BufferedReader r = null;
++- ArrayList<String> names = new ArrayList<>();
+++ ArrayList<String> names = new ArrayList<String>();
++ try {
++ // The problem is that by default, streams opened with
++ // u.openInputStream use a cached reference to a JarFile, which
++@@ -362,7 +364,7 @@
++ public static <S> ServiceLoader<S> load(Class<S> service,
++ ClassLoader loader)
++ {
++- return new ServiceLoader<>(service, loader);
+++ return new ServiceLoader<S>(service, loader);
++ }
++
++ /**
++--- a/langtools/src/share/classes/javax/annotation/processing/AbstractProcessor.java
+++++ b/langtools/src/share/classes/javax/annotation/processing/AbstractProcessor.java
++@@ -28,7 +28,6 @@
++ import java.util.Set;
++ import java.util.HashSet;
++ import java.util.Collections;
++-import java.util.Objects;
++ import javax.lang.model.element.*;
++ import javax.lang.model.SourceVersion;
++ import javax.tools.Diagnostic;
++@@ -147,7 +146,8 @@
++ public synchronized void init(ProcessingEnvironment processingEnv) {
++ if (initialized)
++ throw new IllegalStateException("Cannot call init more than once.");
++- Objects.requireNonNull(processingEnv, "Tool provided null ProcessingEnvironment");
+++ if (processingEnv == null)
+++ throw new NullPointerException("Tool provided null ProcessingEnvironment");
++
++ this.processingEnv = processingEnv;
++ initialized = true;
++--- a/langtools/src/share/classes/com/sun/tools/javac/util/Pair.java
+++++ b/langtools/src/share/classes/com/sun/tools/javac/util/Pair.java
++@@ -25,8 +25,6 @@
++
++ package com.sun.tools.javac.util;
++
++-import java.util.Objects;
++-
++ /** A generic class for pairs.
++ *
++ * <p><b>This is NOT part of any supported API.
++@@ -51,8 +49,12 @@
++ public boolean equals(Object other) {
++ return
++ other instanceof Pair<?,?> &&
++- Objects.equals(fst, ((Pair<?,?>)other).fst) &&
++- Objects.equals(snd, ((Pair<?,?>)other).snd);
+++ equals(fst, ((Pair<?,?>)other).fst) &&
+++ equals(snd, ((Pair<?,?>)other).snd);
+++ }
+++
+++ private boolean equals(Object a, Object b) {
+++ return (a == b) || (a != null && a.equals(b));
++ }
++
++ public int hashCode() {
++--- a/langtools/make/build.properties
+++++ b/langtools/make/build.properties
++@@ -68,7 +68,7 @@
++ # set the following to -version to verify the versions of javac being used
++ javac.version.opt =
++ # in time, there should be no exceptions to -Xlint:all
++-javac.lint.opts = -Xlint:all -Werror
+++javac.lint.opts = -Xlint:all
++
++ # options for the <javadoc> task for javac
++ #javadoc.jls3.url=http://java.sun.com/docs/books/jls/
++--- a/langtools/make/BuildLangtools.gmk
+++++ b/langtools/make/BuildLangtools.gmk
++@@ -36,7 +36,7 @@
++ JAVAC := $(JAVAC), \
++ SERVER_DIR := $(SJAVAC_SERVER_DIR), \
++ SERVER_JVM := $(SJAVAC_SERVER_JAVA), \
++- FLAGS := -XDignore.symbol.file=true -g -Xlint:all$(COMMA)-deprecation -Werror))
+++ FLAGS := -XDignore.symbol.file=true -g -Xlint:all$(COMMA)-deprecation -nowarn -1.7))
++
++ # javax.tools.JavaCompilerTool isn't really a suffix but this gets the file copied.
++ RESOURCE_SUFFIXES := .gif .xml .css .js javax.tools.JavaCompilerTool
++@@ -175,7 +175,7 @@
++ JAVAC := "-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar" \
++ -cp $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
++ com.sun.tools.javac.Main, \
++- FLAGS := -XDignore.symbol.file=true -Xlint:all$(COMMA)-deprecation -Werror, \
+++ FLAGS := -XDignore.symbol.file=true -Xlint:all$(COMMA)-deprecation, \
++ SERVER_DIR := $(SJAVAC_SERVER_DIR), \
++ SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
++
++--- a/langtools/src/share/classes/com/sun/tools/classfile/ClassFile.java
+++++ b/langtools/src/share/classes/com/sun/tools/classfile/ClassFile.java
++@@ -28,8 +28,7 @@
++ import java.io.File;
++ import java.io.IOException;
++ import java.io.InputStream;
++-import java.nio.file.Files;
++-import java.nio.file.Path;
+++import java.io.FileInputStream;
++
++ import static com.sun.tools.classfile.AccessFlags.*;
++
++@@ -44,26 +43,16 @@
++ public class ClassFile {
++ public static ClassFile read(File file)
++ throws IOException, ConstantPoolException {
++- return read(file.toPath(), new Attribute.Factory());
+++ return read(file, new Attribute.Factory());
++ }
++
++- public static ClassFile read(Path input)
++- throws IOException, ConstantPoolException {
++- return read(input, new Attribute.Factory());
++- }
++-
++- public static ClassFile read(Path input, Attribute.Factory attributeFactory)
+++ public static ClassFile read(File file, Attribute.Factory attributeFactory)
++ throws IOException, ConstantPoolException {
++- try (InputStream in = Files.newInputStream(input)) {
+++ try (InputStream in = new FileInputStream(file)) {
++ return new ClassFile(in, attributeFactory);
++ }
++ }
++
++- public static ClassFile read(File file, Attribute.Factory attributeFactory)
++- throws IOException, ConstantPoolException {
++- return read(file.toPath(), attributeFactory);
++- }
++-
++ public static ClassFile read(InputStream in)
++ throws IOException, ConstantPoolException {
++ return new ClassFile(in, new Attribute.Factory());
++--- a/langtools/src/share/classes/com/sun/tools/javac/nio/PathFileManager.java
+++++ b/langtools/src/share/classes/com/sun/tools/javac/nio/PathFileManager.java
++@@ -25,10 +25,8 @@
++
++ package com.sun.tools.javac.nio;
++
+++import java.io.File;
++ import java.io.IOException;
++-import java.nio.file.FileSystem;
++-import java.nio.file.FileSystems;
++-import java.nio.file.Path;
++ import javax.tools.FileObject;
++ import javax.tools.JavaFileManager;
++ import javax.tools.JavaFileObject;
++@@ -52,13 +50,13 @@
++ * Get the default file system used to create paths. If no value has been
++ * set, the default file system is {@link FileSystems#getDefault}.
++ */
++- FileSystem getDefaultFileSystem();
+++ //FileSystem getDefaultFileSystem();
++
++ /**
++ * Set the default file system used to create paths.
++ * @param fs the default file system used to create any new paths.
++ */
++- void setDefaultFileSystem(FileSystem fs);
+++ //void setDefaultFileSystem(FileSystem fs);
++
++ /**
++ * Get file objects representing the given files.
++@@ -69,7 +67,7 @@
++ * a directory
++ */
++ Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(
++- Iterable<? extends Path> paths);
+++ Iterable<File> paths);
++
++ /**
++ * Get file objects representing the given paths.
++@@ -86,7 +84,7 @@
++ * @throws NullPointerException if the given array contains null
++ * elements
++ */
++- Iterable<? extends JavaFileObject> getJavaFileObjects(Path... paths);
+++ Iterable<? extends JavaFileObject> getJavaFileObjects(File... paths);
++
++ /**
++ * Return the Path for a file object that has been obtained from this
++@@ -97,7 +95,7 @@
++ * @throws IllegalArgumentException is the file object was not obtained from
++ * from this file manager.
++ */
++- Path getPath(FileObject fo);
+++ File getPath(FileObject fo);
++
++ /**
++ * Get the search path associated with the given location.
++@@ -107,7 +105,7 @@
++ * associated search path
++ * @see #setLocation
++ */
++- Iterable<? extends Path> getLocation(Location location);
+++ Iterable<File> getLocation(Location location);
++
++ /**
++ * Associate the given search path with the given location. Any
++@@ -122,5 +120,5 @@
++ * @throws IOException if location is an output location and searchpath
++ * does not represent an existing directory
++ */
++- void setLocation(Location location, Iterable<? extends Path> searchPath) throws IOException;
+++ void setLocation(Location location, Iterable<File> searchPath) throws IOException;
++ }
++--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/PathDocFileFactory.java
+++++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/PathDocFileFactory.java
++@@ -28,15 +28,13 @@
++ import java.io.BufferedInputStream;
++ import java.io.BufferedOutputStream;
++ import java.io.BufferedWriter;
+++import java.io.File;
++ import java.io.IOException;
++ import java.io.InputStream;
++ import java.io.OutputStream;
++ import java.io.OutputStreamWriter;
++ import java.io.UnsupportedEncodingException;
++ import java.io.Writer;
++-import java.nio.file.DirectoryStream;
++-import java.nio.file.Files;
++-import java.nio.file.Path;
++ import java.util.ArrayList;
++ import java.util.Arrays;
++ import java.util.LinkedHashSet;
++@@ -65,7 +63,7 @@
++ */
++ class PathDocFileFactory extends DocFileFactory {
++ private final PathFileManager fileManager;
++- private final Path destDir;
+++ private final File destDir;
++
++ public PathDocFileFactory(Configuration configuration) {
++ super(configuration);
++@@ -75,7 +73,7 @@
++ || !fileManager.hasLocation(DocumentationTool.Location.DOCUMENTATION_OUTPUT)) {
++ try {
++ String dirName = configuration.destDirName.isEmpty() ? "." : configuration.destDirName;
++- Path dir = fileManager.getDefaultFileSystem().getPath(dirName);
+++ File dir = new File(dirName);
++ fileManager.setLocation(DocumentationTool.Location.DOCUMENTATION_OUTPUT, Arrays.asList(dir));
++ } catch (IOException e) {
++ throw new DocletAbortException(e);
++@@ -86,11 +84,11 @@
++ }
++
++ public DocFile createFileForDirectory(String file) {
++- return new StandardDocFile(fileManager.getDefaultFileSystem().getPath(file));
+++ return new StandardDocFile(new File(file));
++ }
++
++ public DocFile createFileForInput(String file) {
++- return new StandardDocFile(fileManager.getDefaultFileSystem().getPath(file));
+++ return new StandardDocFile(new File(file));
++ }
++
++ public DocFile createFileForOutput(DocPath path) {
++@@ -104,10 +102,10 @@
++
++ Set<DocFile> files = new LinkedHashSet<DocFile>();
++ if (fileManager.hasLocation(location)) {
++- for (Path f: fileManager.getLocation(location)) {
++- if (Files.isDirectory(f)) {
++- f = f.resolve(path.getPath());
++- if (Files.exists(f))
+++ for (File f: fileManager.getLocation(location)) {
+++ if (f.isDirectory()) {
+++ f = new File(f, path.getPath());
+++ if (f.exists())
++ files.add(new StandardDocFile(f));
++ }
++ }
++@@ -116,10 +114,10 @@
++ }
++
++ class StandardDocFile extends DocFile {
++- private Path file;
+++ private File file;
++
++ /** Create a StandardDocFile for a given file. */
++- private StandardDocFile(Path file) {
+++ private StandardDocFile(File file) {
++ super(configuration);
++ this.file = file;
++ }
++@@ -127,7 +125,7 @@
++ /** Create a StandardDocFile for a given location and relative path. */
++ private StandardDocFile(Location location, DocPath path) {
++ super(configuration, location, path);
++- this.file = destDir.resolve(path.getPath());
+++ this.file = new File(destDir, path.getPath());
++ }
++
++ /** Open an input stream for the file. */
++@@ -169,22 +167,22 @@
++
++ /** Return true if the file can be read. */
++ public boolean canRead() {
++- return Files.isReadable(file);
+++ return file.canRead();
++ }
++
++ /** Return true if the file can be written. */
++ public boolean canWrite() {
++- return Files.isWritable(file);
+++ return file.canWrite();
++ }
++
++ /** Return true if the file exists. */
++ public boolean exists() {
++- return Files.exists(file);
+++ return file.exists();
++ }
++
++ /** Return the base name (last component) of the file name. */
++ public String getName() {
++- return file.getFileName().toString();
+++ return file.getName();
++ }
++
++ /** Return the file system path for this file. */
++@@ -199,12 +197,12 @@
++
++ /** Return true is file identifies a directory. */
++ public boolean isDirectory() {
++- return Files.isDirectory(file);
+++ return file.isDirectory();
++ }
++
++ /** Return true is file identifies a file. */
++ public boolean isFile() {
++- return Files.isRegularFile(file);
+++ return file.exists() && !file.isDirectory();
++ }
++
++ /** Return true if this file is the same as another. */
++@@ -212,32 +210,21 @@
++ if (!(other instanceof StandardDocFile))
++ return false;
++
++- try {
++- return Files.isSameFile(file, ((StandardDocFile) other).file);
++- } catch (IOException e) {
++- return false;
++- }
+++ return file.equals(((StandardDocFile) other).file);
++ }
++
++ /** If the file is a directory, list its contents. */
++ public Iterable<DocFile> list() throws IOException {
++ List<DocFile> files = new ArrayList<DocFile>();
++- try (DirectoryStream<Path> ds = Files.newDirectoryStream(file)) {
++- for (Path f: ds) {
++- files.add(new StandardDocFile(f));
++- }
+++ for (File f : file.listFiles()) {
+++ files.add(new StandardDocFile(f));
++ }
++ return files;
++ }
++
++ /** Create the file as a directory, including any parent directories. */
++ public boolean mkdirs() {
++- try {
++- Files.createDirectories(file);
++- return true;
++- } catch (IOException e) {
++- return false;
++- }
+++ return file.mkdirs();
++ }
++
++ /**
++@@ -258,7 +245,7 @@
++ */
++ public DocFile resolve(String p) {
++ if (location == null && path == null) {
++- return new StandardDocFile(file.resolve(p));
+++ return new StandardDocFile(new File(file, p));
++ } else {
++ return new StandardDocFile(location, path.resolve(p));
++ }
++@@ -272,7 +259,7 @@
++ public DocFile resolveAgainst(Location locn) {
++ if (locn != DocumentationTool.Location.DOCUMENTATION_OUTPUT)
++ throw new IllegalArgumentException();
++- return new StandardDocFile(destDir.resolve(file));
+++ return new StandardDocFile(new File(destDir, file.toString()));
++ }
++
++ /** Return a string to identify the contents of this object,
++@@ -291,7 +278,7 @@
++ return sb.toString();
++ }
++
++- private JavaFileObject getJavaFileObjectForInput(Path file) {
+++ private JavaFileObject getJavaFileObjectForInput(File file) {
++ return fileManager.getJavaFileObjects(file).iterator().next();
++ }
++
++--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java
+++++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java
++@@ -196,7 +196,8 @@
++ }
++
++ private static String encodeURL(String url) {
++- byte[] urlBytes = url.getBytes(Charset.forName("UTF-8"));
+++ try {
+++ byte[] urlBytes = url.getBytes("UTF-8");
++ StringBuilder sb = new StringBuilder();
++ for (int i = 0; i < urlBytes.length; i++) {
++ int c = urlBytes[i];
++@@ -207,6 +208,9 @@
++ }
++ }
++ return sb.toString();
+++ } catch (java.io.UnsupportedEncodingException e) {
+++ throw new RuntimeException(e);
+++ }
++ }
++
++ /**
++--- a/langtools/src/share/classes/com/sun/tools/classfile/ReferenceFinder.java
+++++ b/langtools/src/share/classes/com/sun/tools/classfile/ReferenceFinder.java
++@@ -28,7 +28,6 @@
++ import java.util.ArrayList;
++ import java.util.HashSet;
++ import java.util.List;
++-import java.util.Objects;
++ import java.util.Set;
++ import com.sun.tools.classfile.Instruction.TypeKind;
++ import static com.sun.tools.classfile.ConstantPool.*;
++@@ -77,8 +76,11 @@
++ * Constructor.
++ */
++ public ReferenceFinder(Filter filter, Visitor visitor) {
++- this.filter = Objects.requireNonNull(filter);
++- this.visitor = Objects.requireNonNull(visitor);
+++ if (filter == null || visitor == null) {
+++ throw new NullPointerException();
+++ }
+++ this.filter = filter;
+++ this.visitor = visitor;
++ }
++
++ /**
++--- a/langtools/src/share/classes/com/sun/tools/javac/sym/Profiles.java
+++++ b/langtools/src/share/classes/com/sun/tools/javac/sym/Profiles.java
++@@ -25,13 +25,14 @@
++ package com.sun.tools.javac.sym;
++
++ import java.io.BufferedInputStream;
+++import java.io.BufferedReader;
++ import java.io.BufferedWriter;
++ import java.io.File;
++ import java.io.FileInputStream;
++ import java.io.FileWriter;
+++import java.io.InputStreamReader;
++ import java.io.IOException;
++ import java.nio.charset.Charset;
++-import java.nio.file.Files;
++ import java.util.HashMap;
++ import java.util.Map;
++ import java.util.Properties;
++@@ -59,7 +60,9 @@
++ lists.put(i, new TreeSet<String>());
++
++ File rt_jar_lst = new File(args[1]);
++- for (String line: Files.readAllLines(rt_jar_lst.toPath(), Charset.defaultCharset())) {
+++ BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(rt_jar_lst)));
+++ String line;
+++ while ((line = reader.readLine()) != null) {
++ if (line.endsWith(".class")) {
++ String type = line.substring(0, line.length() - 6);
++ int profile = p.getProfile(type);
++@@ -67,6 +70,7 @@
++ lists.get(i).add(type);
++ }
++ }
+++ reader.close();
++
++ for (int i = 1; i <= 4; i++) {
++ BufferedWriter out = new BufferedWriter(new FileWriter(i + ".txt"));
++--- a/langtools/src/share/classes/com/sun/tools/classfile/SourceDebugExtension_attribute.java
+++++ b/langtools/src/share/classes/com/sun/tools/classfile/SourceDebugExtension_attribute.java
++@@ -58,7 +58,11 @@
++ }
++
++ public String getValue() {
++- return new String(debug_extension, UTF8);
+++ try {
+++ return new String(debug_extension, "UTF-8");
+++ } catch (java.io.UnsupportedEncodingException e) {
+++ throw new RuntimeException(e);
+++ }
++ }
++
++ public <R, D> R accept(Visitor<R, D> visitor, D data) {
++--- a/langtools/src/share/classes/com/sun/tools/javac/util/JavacMessages.java
+++++ b/langtools/src/share/classes/com/sun/tools/javac/util/JavacMessages.java
++@@ -121,7 +121,7 @@
++ ResourceBundle rb = ResourceBundle.getBundle(bundleName, locale);
++ bundleList = bundleList.prepend(rb);
++ } catch (MissingResourceException e) {
++- throw new InternalError("Cannot find javac resource bundle for locale " + locale);
+++ //throw (Error) new InternalError("Cannot find javac resource bundle for locale " + locale).initCause(e);
++ }
++ }
++ bundleCache.put(locale, new SoftReference<List<ResourceBundle>>(bundleList));
--- /dev/null
--- /dev/null
++--- a/jdk/src/solaris/native/sun/awt/awt_Font.c
+++++ b/jdk/src/solaris/native/sun/awt/awt_Font.c
++@@ -502,7 +502,7 @@ awtJNI_GetFontData(JNIEnv * env, jobject
++ jio_snprintf(fdata->flist[i].xlfd, strlen(nativename) + 10,
++ nativename, size * 10);
++
++- if (nativename != NULL && nativename != "")
+++ if (nativename && !strcmp(nativename, ""))
++ JNU_ReleaseStringPlatformChars(env, fontDescriptorName, (const char *) nativename);
++
++ /*
--- /dev/null
--- /dev/null
++# DP: Build using the default flags (POWER8) on ppc64el.
++
++--- a/hotspot/make/linux/makefiles/ppc64.make
+++++ b/hotspot/make/linux/makefiles/ppc64.make
++@@ -47,5 +47,5 @@ else
++ CFLAGS += -DVM_LITTLE_ENDIAN -DABI_ELFv2
++
++ # Use Power8, this is the first CPU to support PPC64 LE with ELFv2 ABI.
++- CFLAGS += -mcpu=power7 -mtune=power8 -minsert-sched-nops=regroup_exact -mno-multiple -mno-string
+++ CFLAGS += -minsert-sched-nops=regroup_exact -mno-multiple -mno-string
++ endif
--- /dev/null
--- /dev/null
++--- openjdk/jdk/src/share/bin/java.c.orig
+++++ openjdk/jdk/src/share/bin/java.c
++@@ -1580,7 +1580,7 @@
++ ReadKnownVMs(const char *jvmCfgName, jboolean speculative)
++ {
++ FILE *jvmCfg;
++- char line[MAXPATHLEN+20];
+++ char line[MAXPATHLEN+30];
++ int cnt = 0;
++ int lineno = 0;
++ jlong start, end;
++@@ -1595,6 +1595,10 @@
++
++ jvmCfg = fopen(jvmCfgName, "r");
++ if (jvmCfg == NULL) {
+++ strcat(jvmCfgName, "-default");
+++ jvmCfg = fopen(jvmCfgName, "r");
+++ }
+++ if (jvmCfg == NULL) {
++ if (!speculative) {
++ JLI_ReportErrorMessage(CFG_ERROR6, jvmCfgName);
++ exit(1);
--- /dev/null
--- /dev/null
++--- a/jdk/src/share/bin/java.c
+++++ b/jdk/src/share/bin/java.c
++@@ -1724,7 +1724,7 @@ jint
++ ReadKnownVMs(const char *jvmCfgName, jboolean speculative)
++ {
++ FILE *jvmCfg;
++- char line[MAXPATHLEN+20];
+++ char line[MAXPATHLEN+30];
++ int cnt = 0;
++ int lineno = 0;
++ jlong start, end;
++@@ -1739,6 +1739,10 @@ ReadKnownVMs(const char *jvmCfgName, jbo
++
++ jvmCfg = fopen(jvmCfgName, "r");
++ if (jvmCfg == NULL) {
+++ strcat(jvmCfgName, "-default");
+++ jvmCfg = fopen(jvmCfgName, "r");
+++ }
+++ if (jvmCfg == NULL) {
++ if (!speculative) {
++ JLI_ReportErrorMessage(CFG_ERROR6, jvmCfgName);
++ exit(1);
--- /dev/null
--- /dev/null
++Description: Disable doclint by default
++ OpenJDK 8 adds and enables doclint by default. This catches issues in
++ javadoc comments. It is too strict, breaks javadoc compilation and, in
++ general, breaks the build for old code known to build with previous
++ versions of OpenJDK.
++ .
++ See: http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html
++ See: https://lists.fedoraproject.org/pipermail/java-devel/2014-February/005150.html
++Author: Andrew John Hughes <ahughes@redhat.com>
++Forwarded: not-needed
++--- a/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
+++++ b/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
++@@ -812,10 +812,9 @@ public class DocEnv {
++ doclintOpts.add(opt == null ? DocLint.XMSGS_OPTION : DocLint.XMSGS_CUSTOM_PREFIX + opt);
++ }
++
++- if (doclintOpts.isEmpty()) {
++- doclintOpts.add(DocLint.XMSGS_OPTION);
++- } else if (doclintOpts.size() == 1
++- && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX + "none")) {
+++ if (doclintOpts.isEmpty() ||
+++ (doclintOpts.size() == 1
+++ && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX + "none"))) {
++ return;
++ }
++
++--- a/langtools/test/tools/javadoc/doclint/DocLintTest.java
+++++ b/langtools/test/tools/javadoc/doclint/DocLintTest.java
++@@ -130,12 +130,12 @@ public class DocLintTest {
++ };
++
++ test(Collections.<String>emptyList(),
++- Main.Result.ERROR,
++- EnumSet.of(Message.DL_ERR9A, Message.DL_WRN12A));
+++ Main.Result.OK,
+++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13));
++
++ test(Arrays.asList(rawDiags),
++- Main.Result.ERROR,
++- EnumSet.of(Message.DL_ERR9, Message.DL_WRN12));
+++ Main.Result.OK,
+++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13));
++
++ test(Arrays.asList("-Xdoclint:none"),
++ Main.Result.OK,
++@@ -158,8 +158,8 @@ public class DocLintTest {
++ EnumSet.of(Message.DL_WRN12));
++
++ test(Arrays.asList(rawDiags, "-private"),
++- Main.Result.ERROR,
++- EnumSet.of(Message.DL_ERR6, Message.DL_ERR9, Message.DL_WRN12));
+++ Main.Result.OK,
+++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13));
++
++ test(Arrays.asList(rawDiags, "-Xdoclint:syntax", "-private"),
++ Main.Result.ERROR,
--- /dev/null
--- /dev/null
++--- a/jdk/src/solaris/classes/sun/awt/X11/XDataTransferer.java
+++++ b/jdk/src/solaris/classes/sun/awt/X11/XDataTransferer.java
++@@ -282,14 +282,14 @@ public class XDataTransferer extends Dat
++ reader = new BufferedReader(new InputStreamReader(stream, charset));
++ String line;
++ ArrayList<URI> uriList = new ArrayList<URI>();
++- URI uri;
++ while ((line = reader.readLine()) != null) {
++ try {
++- uri = new URI(line);
+++ if (!"\0".equals(line)) {
+++ uriList.add(new URI(line));
+++ }
++ } catch (URISyntaxException uriSyntaxException) {
++ throw new IOException(uriSyntaxException);
++ }
++- uriList.add(uri);
++ }
++ return uriList.toArray(new URI[uriList.size()]);
++ } finally {
--- /dev/null
--- /dev/null
++--- a/common/autoconf/toolchain.m4
+++++ b/common/autoconf/toolchain.m4
++@@ -679,7 +679,9 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_
++ LDEXE="$CC"
++ LDCXX="$CXX"
++ LDEXECXX="$CXX"
++- POST_STRIP_CMD="$STRIP -g"
+++ if test -z "$POST_STRIP_CMD" ; then
+++ POST_STRIP_CMD="$STRIP -g"
+++ fi
++
++ # Linking is different on MacOSX
++ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
--- /dev/null
--- /dev/null
++--- a/common/autoconf/generated-configure.sh
+++++ b/common/autoconf/generated-configure.sh
++@@ -14779,9 +14779,6 @@ $as_echo "$with_jvm_variants" >&6; }
++ if test "x$VAR_CPU" = xppc64 -o "x$VAR_CPU" = xppc64le ; then
++ INCLUDE_SA=false
++ fi
++- if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
++- INCLUDE_SA=false
++- fi
++
++
++ if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
++--- a/common/autoconf/jdk-options.m4
+++++ b/common/autoconf/jdk-options.m4
++@@ -161,9 +161,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS
++ if test "x$VAR_CPU" = xppc64 -o "x$VAR_CPU" = xppc64le ; then
++ INCLUDE_SA=false
++ fi
++- if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
++- INCLUDE_SA=false
++- fi
++ AC_SUBST(INCLUDE_SA)
++
++ if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
--- /dev/null
--- /dev/null
++--- openjdk/jdk/src/solaris/native/java/net/NetworkInterface.c~ 2012-02-15 09:26:50.000000000 +0100
+++++ openjdk/jdk/src/solaris/native/java/net/NetworkInterface.c 2012-02-26 14:13:22.602107361 +0100
++@@ -1105,7 +1105,7 @@
++ uint8_t ipv6addr[16];
++
++ if ((f = fopen(_PATH_PROCNET_IFINET6, "r")) != NULL) {
++- while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %20s\n",
+++ while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %x %x %x %x %20s\n",
++ addr6p[0], addr6p[1], addr6p[2], addr6p[3], addr6p[4], addr6p[5], addr6p[6], addr6p[7],
++ &if_idx, &plen, &scope, &dad_status, devname) != EOF) {
++
--- /dev/null
--- /dev/null
++# used for Debian wheezy and Ubuntu 12.04 LTS or newer
++
++--- openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.orig 2013-02-07 17:01:24.723477262 +0100
+++++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties 2013-02-07 17:03:39.043477916 +0100
++@@ -57,142 +57,142 @@
++
++ serif.plain.latin-1=DejaVu Serif
++ #serif.plain.latin-1.motif=LuxiSerif-Regular
++-serif.plain.japanese-kochi=Kochi Mincho
++ serif.plain.japanese-sazanami=Sazanami Mincho
++ serif.plain.japanese-vlgothic=Sazanami Mincho
+++serif.plain.japanese-ipafont=IPAMincho
++ serif.plain.korean-nanum=NanumMyeongjo
++
++ serif.bold.latin-1=DejaVu Serif Bold
++ #serif.bold.latin-1.motif=LuxiSerif-Bold
++-serif.bold.japanese-kochi=Kochi Mincho
++ serif.bold.japanese-sazanami=Sazanami Mincho
++ serif.bold.japanese-vlgothic=Sazanami Mincho
+++serif.bold.japanese-ipafont=IPAMincho
++ serif.bold.korean-nanum=NanumMyeongjo Bold
++
++ serif.italic.latin-1=DejaVu Serif Oblique
++ #serif.italic.latin-1.motif=LuxiSerif-Oblique
++-serif.italic.japanese-kochi=Kochi Mincho
++ serif.italic.japanese-sazanami=Sazanami Mincho
++ serif.italic.japanese-vlgothic=Sazanami Mincho
+++serif.italic.japanese-ipafont=IPAMincho
++ serif.italic.korean-nanum=NanumMyeongjo
++
++ serif.bolditalic.latin-1=DejaVu Serif Bold Oblique
++ #serif.bolditalic.latin-1.motif=LuxiSerif-BoldOblique
++-serif.bolditalic.japanese-kochi=Kochi Mincho
++ serif.bolditalic.japanese-sazanami=Sazanami Mincho
++ serif.bolditalic.japanese-vlgothic=Sazanami Mincho
+++serif.bolditalic.japanese-ipafont=IPAMincho
++ serif.bolditalic.korean-nanum=NanumMyeongjo Bold
++
++ sansserif.plain.latin-1=DejaVu Sans
++ #sansserif.plain.latin-1.motif=LuxiSans-Regular
++-sansserif.plain.japanese-kochi=Kochi Gothic
++ sansserif.plain.japanese-sazanami=Sazanami Gothic
++ sansserif.plain.japanese-vlgothic=VL PGothic
+++sansserif.plain.japanese-ipafont=IPAPGothic
++ sansserif.plain.korean-nanum=NanumGothic
++
++ sansserif.bold.latin-1=DejaVu Sans Bold
++ #sansserif.bold.latin-1.motif=LuxiSans-Bold
++-sansserif.bold.japanese-kochi=Kochi Gothic
++ sansserif.bold.japanese-sazanami=Sazanami Gothic
++ sansserif.bold.japanese-vlgothic=VL PGothic
+++sansserif.bold.japanese-ipafont=IPAPGothic
++ sansserif.bold.korean-nanum=NanumGothic Bold
++
++ sansserif.italic.latin-1=DejaVu Sans Oblique
++ #sansserif.italic.latin-1.motif=LuxiSans-Oblique
++-sansserif.italic.japanese-kochi=Kochi Gothic
++ sansserif.italic.japanese-sazanami=Sazanami Gothic
++ sansserif.italic.japanese-vlgothic=VL PGothic
+++sansserif.italic.japanese-ipafont=IPAPGothic
++ sansserif.italic.korean-nanum=NanumGothic
++
++ sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique
++ #sansserif.bolditalic.latin-1.motif=LuxiSans-BoldOblique
++-sansserif.bolditalic.japanese-kochi=Kochi Gothic
++ sansserif.bolditalic.japanese-sazanami=Sazanami Gothic
++ sansserif.bolditalic.japanese-vlgothic=VL PGothic
+++sansserif.bolditalic.japanese-ipafont=IPAPGothic
++ sansserif.bolditalic.korean-nanum=NanumGothic Bold
++
++ monospaced.plain.latin-1=DejaVu Sans Mono
++ #monospaced.plain.latin-1.motif=LuxiMono-Regular
++-monospaced.plain.japanese-kochi=Kochi Gothic
++ monospaced.plain.japanese-sazanami=Sazanami Gothic
++ monospaced.plain.japanese-vlgothic=VL Gothic
+++monospaced.plain.japanese-ipafont=IPAGothic
++ monospaced.plain.korean-nanum=NanumGothicCoding
++
++ monospaced.bold.latin-1=DejaVu Sans Mono Bold
++ #monospaced.bold.latin-1.motif=LuxiMono-Bold
++-monospaced.bold.japanese-kochi=Kochi Gothic
++ monospaced.bold.japanese-sazanami=Sazanami Gothic
++ monospaced.bold.japanese-vlgothic=VL Gothic
+++monospaced.bold.japanese-ipafont=IPAGothic
++ monospaced.bold.korean-nanum=NanumGothicCoding Bold
++
++ monospaced.italic.latin-1=DejaVu Sans Mono Oblique
++ #monospaced.italic.latin-1.motif=LuxiMono-Oblique
++-monospaced.italic.japanese-kochi=Kochi Gothic
++ monospaced.italic.japanese-sazanami=Sazanami Gothic
++ monospaced.italic.japanese-vlgothic=VL Gothic
+++monospaced.italic.japanese-ipafont=IPAGothic
++ monospaced.italic.korean-nanum=NanumGothicCoding
++
++ monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
++ #monospaced.bolditalic.latin-1.motif=LuxiMono-BoldOblique
++-monospaced.bolditalic.japanese-kochi=Kochi Gothic
++ monospaced.bolditalic.japanese-sazanami=Sazanami Gothic
++ monospaced.bolditalic.japanese-vlgothic=VL Gothic
+++monospaced.bolditalic.japanese-ipafont=IPAGothic
++ monospaced.bolditalic.korean-nanum=NanumGothicCoding Bold
++
++ dialog.plain.latin-1=DejaVu Sans
++ #dialog.plain.latin-1.motif=LuxiSans-Regular
++-dialog.plain.japanese-kochi=Kochi Gothic
++ dialog.plain.japanese-sazanami=Sazanami Gothic
++ dialog.plain.japanese-vlgothic=VL PGothic
+++dialog.plain.japanese-ipafont=IPAPGothic
++ dialog.plain.korean-nanum=NanumGothic
++
++ dialog.bold.latin-1=DejaVu Sans Bold
++ #dialog.bold.latin-1.motif=LuxiSans-Bold
++-dialog.bold.japanese-kochi=Kochi Gothic
++ dialog.bold.japanese-sazanami=Sazanami Gothic
++ dialog.bold.japanese-vlgothic=VL PGothic
+++dialog.bold.japanese-ipafont=IPAPGothic
++ dialog.bold.korean-nanum=NanumGothic Bold
++
++ dialog.italic.latin-1=DejaVu Sans Oblique
++ #dialog.italic.latin-1.motif=LuxiSans-Oblique
++-dialog.italic.japanese-kochi=Kochi Gothic
++ dialog.italic.japanese-sazanami=Sazanami Gothic
++ dialog.italic.japanese-vlgothic=VL PGothic
+++dialog.italic.japanese-ipafont=IPAPGothic
++ dialog.italic.korean-nanum=NanumGothic
++
++ dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique
++ #dialog.bolditalic.latin-1.motif=LuxiSans-BoldOblique
++-dialog.bolditalic.japanese-kochi=Kochi Gothic
++ dialog.bolditalic.japanese-sazanami=Sazanami Gothic
++ dialog.bolditalic.japanese-vlgothic=VL PGothic
+++dialog.bolditalic.japanese-ipafont=IPAPGothic
++ dialog.bolditalic.korean-nanum=NanumGothic Bold
++
++ dialoginput.plain.latin-1=DejaVu Sans Mono
++ #dialoginput.plain.latin-1.motif=LuxiMono-Regular
++-dialoginput.plain.japanese-kochi=Kochi Gothic
++ dialoginput.plain.japanese-sazanami=Sazanami Gothic
++ dialoginput.plain.japanese-vlgothic=VL Gothic
+++dialoginput.plain.japanese-ipafont=IPAGothic
++ dialoginput.plain.korean-nanum=NanumGothic
++
++ dialoginput.bold.latin-1=DejaVu Sans Mono Bold
++ #dialoginput.bold.latin-1.motif=LuxiMono-Bold
++-dialoginput.bold.japanese-kochi=Kochi Gothic
++ dialoginput.bold.japanese-sazanami=Sazanami Gothic
++ dialoginput.bold.japanese-vlgothic=VL Gothic
+++dialoginput.bold.japanese-ipafont=IPAGothic
++ dialoginput.bold.korean-nanum=NanumGothic Bold
++
++ dialoginput.italic.latin-1=DejaVu Sans Mono Oblique
++ #dialoginput.italic.latin-1.motif=LuxiMono-Oblique
++-dialoginput.italic.japanese-kochi=Kochi Gothic
++ dialoginput.italic.japanese-sazanami=Sazanami Gothic
++ dialoginput.italic.japanese-vlgothic=VL Gothic
+++dialoginput.italic.japanese-ipafont=IPAGothic
++ dialoginput.italic.korean-nanum=NanumGothic
++
++ dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
++ #dialoginput.bolditalic.latin-1.motif=LuxiMono-BoldOblique
++-dialoginput.bolditalic.japanese-kochi=Kochi Gothic
++ dialoginput.bolditalic.japanese-sazanami=Sazanami Gothic
++ dialoginput.bolditalic.japanese-vlgothic=VL Gothic
+++dialoginput.bolditalic.japanese-ipafont=IPAGothic
++ dialoginput.bolditalic.korean-nanum=NanumGothic Bold
++
++ # Search Sequences
++@@ -201,18 +201,20 @@
++ sequence.allfonts.GB18030=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
++ sequence.allfonts.GB2312=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
++ sequence.allfonts.GBK=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
++-sequence.allfonts.x-euc-jp-linux=latin-1,japanese-vlgothic,japanese-sazanami,japanese-kochi
+++sequence.allfonts.x-euc-jp-linux=latin-1,japanese-ipafont,japanese-vlgothic,japanese-sazanami
++ sequence.allfonts.EUC-KR=latin-1,korean-nanum
++ sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-microhei,wqy-zenhei
++ sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-microhei,wqy-zenhei
++-#sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
++-sequence.fallback=wqy-microhei,uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-nanum,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
+++#sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-ipafont,japanese-vlgothic,japanese-sazanami,korean-un,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
+++sequence.fallback=wqy-microhei,uminghk,shanheisun,wqy-zenhei,japanese-ipafont,japanese-vlgothic,japanese-sazanami,korean-nanum,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
+++
+++sequence.fallback=wqy-microhei,uminghk,shanheisun,wqy-zenhei,japanese-ipafont,japanese-vlgothic,japanese-sazanami,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
++
++ # Exclusion Ranges
++
++-exclusion.japanese-kochi=0390-03d6,2200-22ef,2701-27be
++ exclusion.japanese-sazanami=0390-03d6,2200-22ef,2701-27be
++ exclusion.japanese-vlgothic=0390-03d6,2200-22ef,2701-27be
+++exclusion.japanese-ipafont=0390-03d6,2200-22ef,2701-27be
++
++ # Font File Names
++
++@@ -244,12 +246,16 @@
++ filename.NanumGothic_Bold=/usr/share/fonts/truetype/nanum/NanumGothicBold.ttf
++ filename.NanumGothicCoding=/usr/share/fonts/truetype/nanum-coding/NanumGothic_Coding.ttf
++ filename.NanumGothicCoding_Bold=/usr/share/fonts/truetype/nanum-coding/NanumGothic_Coding_Bold.ttf
++-filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic.ttf
+++
+++#Japanese fonts
++ filename.Sazanami_Gothic=/usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf
++-filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho.ttf
++ filename.Sazanami_Mincho=/usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf
++ filename.VL_Gothic=/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf
++ filename.VL_PGothic=/usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf
+++filename.IPAGothic=/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf
+++filename.IPAPGothic=/usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf
+++filename.IPAMincho=/usr/share/fonts/opentype/ipafont-mincho/ipam.ttf
+++filename.IPAPMincho=/usr/share/fonts/opentype/ipafont-mincho/ipamp.ttf
++
++ filename.Lohit_Bengali=/usr/share/fonts/truetype/ttf-bengali-fonts/lohit_bn.ttf
++ filename.Lohit_Gujarati=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_gu.ttf
++@@ -283,7 +289,6 @@
++ awtfontpath.shanheisun=/usr/share/fonts/truetype/arphic
++ awtfontpath.wqy-microhei=/usr/share/fonts/truetype/wqy
++ awtfontpath.wqy-zenhei=/usr/share/fonts/truetype/wqy
++-awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi
++ awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami
++ awtfontpath.japanese-vlgothic=/usr/share/fonts/truetype/vlgothic
++ awtfontpath.korean-nanum=/usr/share/fonts/truetype/nanum
--- /dev/null
--- /dev/null
++# used for Debian wheezy and Ubuntu 12.04 LTS or newer
++
++--- openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.orig
+++++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties
++@@ -60,200 +60,140 @@
++ serif.plain.japanese-kochi=Kochi Mincho
++ serif.plain.japanese-sazanami=Sazanami Mincho
++ serif.plain.japanese-vlgothic=Sazanami Mincho
++-serif.plain.korean-baekmuk=Baekmuk Batang
++-#serif.plain.korean-baekmuk.motif=Baekmuk Batang
++-serif.plain.korean-un=UnBatang
++-#serif.plain.korean-un.motif=UnBatang
+++serif.plain.korean-nanum=NanumMyeongjo
++
++ serif.bold.latin-1=DejaVu Serif Bold
++ #serif.bold.latin-1.motif=LuxiSerif-Bold
++ serif.bold.japanese-kochi=Kochi Mincho
++ serif.bold.japanese-sazanami=Sazanami Mincho
++ serif.bold.japanese-vlgothic=Sazanami Mincho
++-serif.bold.korean-baekmuk=Baekmuk Batang
++-#serif.bold.korean-baekmuk.motif=Baekmuk Batang
++-serif.bold.korean-un=UnBatang Bold
++-#serif.bold.korean-un.motif=UnBatang Bold
+++serif.bold.korean-nanum=NanumMyeongjo Bold
++
++ serif.italic.latin-1=DejaVu Serif Oblique
++ #serif.italic.latin-1.motif=LuxiSerif-Oblique
++ serif.italic.japanese-kochi=Kochi Mincho
++ serif.italic.japanese-sazanami=Sazanami Mincho
++ serif.italic.japanese-vlgothic=Sazanami Mincho
++-serif.italic.korean-baekmuk=Baekmuk Batang
++-#serif.italic.korean-baekmuk.motif=Baekmuk Batang
++-serif.italic.korean-un=UnBatang
++-#serif.italic.korean-un.motif=UnBatang
+++serif.italic.korean-nanum=NanumMyeongjo
++
++ serif.bolditalic.latin-1=DejaVu Serif Bold Oblique
++ #serif.bolditalic.latin-1.motif=LuxiSerif-BoldOblique
++ serif.bolditalic.japanese-kochi=Kochi Mincho
++ serif.bolditalic.japanese-sazanami=Sazanami Mincho
++ serif.bolditalic.japanese-vlgothic=Sazanami Mincho
++-serif.bolditalic.korean-baekmuk=Baekmuk Batang
++-#serif.bolditalic.korean-baekmuk.motif=Baekmuk Batang
++-serif.bolditalic.korean-un=UnBatang Bold
++-#serif.bolditalic.korean-un.motif=UnBatang Bold
+++serif.bolditalic.korean-nanum=NanumMyeongjo Bold
++
++ sansserif.plain.latin-1=DejaVu Sans
++ #sansserif.plain.latin-1.motif=LuxiSans-Regular
++ sansserif.plain.japanese-kochi=Kochi Gothic
++ sansserif.plain.japanese-sazanami=Sazanami Gothic
++ sansserif.plain.japanese-vlgothic=VL PGothic
++-sansserif.plain.korean-baekmuk=Baekmuk Gulim
++-#sansserif.plain.korean-baekmuk.motif=Baekmuk Gulim
++-sansserif.plain.korean-un=UnDotum
++-#sansserif.plain.korean-un.motif=UnDotum
+++sansserif.plain.korean-nanum=NanumGothic
++
++ sansserif.bold.latin-1=DejaVu Sans Bold
++ #sansserif.bold.latin-1.motif=LuxiSans-Bold
++ sansserif.bold.japanese-kochi=Kochi Gothic
++ sansserif.bold.japanese-sazanami=Sazanami Gothic
++ sansserif.bold.japanese-vlgothic=VL PGothic
++-sansserif.bold.korean-baekmuk=Baekmuk Gulim
++-#sansserif.bold.korean-baekmuk.motif=Baekmuk Gulim
++-sansserif.bold.korean-un=UnDotum Bold
++-#sansserif.bold.korean-un.motif=UnDotum Bold
+++sansserif.bold.korean-nanum=NanumGothic Bold
++
++ sansserif.italic.latin-1=DejaVu Sans Oblique
++ #sansserif.italic.latin-1.motif=LuxiSans-Oblique
++ sansserif.italic.japanese-kochi=Kochi Gothic
++ sansserif.italic.japanese-sazanami=Sazanami Gothic
++ sansserif.italic.japanese-vlgothic=VL PGothic
++-sansserif.italic.korean-baekmuk=Baekmuk Gulim
++-#sansserif.italic.korean-baekmuk.motif=Baekmuk Gulim
++-sansserif.italic.korean-un=UnDotum
++-#sansserif.italic.korean-un.motif=UnDotum
+++sansserif.italic.korean-nanum=NanumGothic
++
++ sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique
++ #sansserif.bolditalic.latin-1.motif=LuxiSans-BoldOblique
++ sansserif.bolditalic.japanese-kochi=Kochi Gothic
++ sansserif.bolditalic.japanese-sazanami=Sazanami Gothic
++ sansserif.bolditalic.japanese-vlgothic=VL PGothic
++-sansserif.bolditalic.korean-baekmuk=Baekmuk Gulim
++-#sansserif.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
++-sansserif.bolditalic.korean-un=UnDotum Bold
++-#sansserif.bolditalic.korean-un.motif=UnDotum Bold
+++sansserif.bolditalic.korean-nanum=NanumGothic Bold
++
++ monospaced.plain.latin-1=DejaVu Sans Mono
++ #monospaced.plain.latin-1.motif=LuxiMono-Regular
++ monospaced.plain.japanese-kochi=Kochi Gothic
++ monospaced.plain.japanese-sazanami=Sazanami Gothic
++ monospaced.plain.japanese-vlgothic=VL Gothic
++-monospaced.plain.korean-baekmuk=Baekmuk Gulim
++-#monospaced.plain.korean-baekmuk.motif=Baekmuk Gulim
++-monospaced.plain.korean-un=UnDotum
++-#monospaced.plain.korean-un.motif=UnDotum
+++monospaced.plain.korean-nanum=NanumGothicCoding
++
++ monospaced.bold.latin-1=DejaVu Sans Mono Bold
++ #monospaced.bold.latin-1.motif=LuxiMono-Bold
++ monospaced.bold.japanese-kochi=Kochi Gothic
++ monospaced.bold.japanese-sazanami=Sazanami Gothic
++ monospaced.bold.japanese-vlgothic=VL Gothic
++-monospaced.bold.korean-baekmuk=Baekmuk Gulim
++-#monospaced.bold.korean-baekmuk.motif=Baekmuk Gulim
++-monospaced.bold.korean-un=UnDotum Bold
++-#monospaced.bold.korean-un.motif=UnDotum Bold
+++monospaced.bold.korean-nanum=NanumGothicCoding Bold
++
++ monospaced.italic.latin-1=DejaVu Sans Mono Oblique
++ #monospaced.italic.latin-1.motif=LuxiMono-Oblique
++ monospaced.italic.japanese-kochi=Kochi Gothic
++ monospaced.italic.japanese-sazanami=Sazanami Gothic
++ monospaced.italic.japanese-vlgothic=VL Gothic
++-monospaced.italic.korean-baekmuk=Baekmuk Gulim
++-#monospaced.italic.korean-baekmuk.motif=Baekmuk Gulim
++-monospaced.italic.korean-un=UnDotum
++-#monospaced.italic.korean-un.motif=UnDotum
+++monospaced.italic.korean-nanum=NanumGothicCoding
++
++ monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
++ #monospaced.bolditalic.latin-1.motif=LuxiMono-BoldOblique
++ monospaced.bolditalic.japanese-kochi=Kochi Gothic
++ monospaced.bolditalic.japanese-sazanami=Sazanami Gothic
++ monospaced.bolditalic.japanese-vlgothic=VL Gothic
++-monospaced.bolditalic.korean-baekmuk=Baekmuk Gulim
++-#monospaced.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
++-monospaced.bolditalic.korean-un=UnDotum Bold
++-#monospaced.bolditalic.korean-un.motif=UnDotum Bold
+++monospaced.bolditalic.korean-nanum=NanumGothicCoding Bold
++
++ dialog.plain.latin-1=DejaVu Sans
++ #dialog.plain.latin-1.motif=LuxiSans-Regular
++ dialog.plain.japanese-kochi=Kochi Gothic
++ dialog.plain.japanese-sazanami=Sazanami Gothic
++ dialog.plain.japanese-vlgothic=VL PGothic
++-dialog.plain.korean-baekmuk=Baekmuk Gulim
++-#dialog.plain.korean-baekmuk.motif=Baekmuk Gulim
++-dialog.plain.korean-un=UnDotum
++-#dialog.plain.korean-un.motif=UnDotum
+++dialog.plain.korean-nanum=NanumGothic
++
++ dialog.bold.latin-1=DejaVu Sans Bold
++ #dialog.bold.latin-1.motif=LuxiSans-Bold
++ dialog.bold.japanese-kochi=Kochi Gothic
++ dialog.bold.japanese-sazanami=Sazanami Gothic
++ dialog.bold.japanese-vlgothic=VL PGothic
++-dialog.bold.korean-baekmuk=Baekmuk Gulim
++-#dialog.bold.korean-baekmuk.motif=Baekmuk Gulim
++-dialog.bold.korean-un=UnDotum Bold
++-#dialog.bold.korean-un.motif=UnDotum Bold
+++dialog.bold.korean-nanum=NanumGothic Bold
++
++ dialog.italic.latin-1=DejaVu Sans Oblique
++ #dialog.italic.latin-1.motif=LuxiSans-Oblique
++ dialog.italic.japanese-kochi=Kochi Gothic
++ dialog.italic.japanese-sazanami=Sazanami Gothic
++ dialog.italic.japanese-vlgothic=VL PGothic
++-dialog.italic.korean-baekmuk=Baekmuk Gulim
++-#dialog.italic.korean-baekmuk.motif=Baekmuk Gulim
++-dialog.italic.korean-un=UnDotum
++-#dialog.italic.korean-un.motif=UnDotum
+++dialog.italic.korean-nanum=NanumGothic
++
++ dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique
++ #dialog.bolditalic.latin-1.motif=LuxiSans-BoldOblique
++ dialog.bolditalic.japanese-kochi=Kochi Gothic
++ dialog.bolditalic.japanese-sazanami=Sazanami Gothic
++ dialog.bolditalic.japanese-vlgothic=VL PGothic
++-dialog.bolditalic.korean-baekmuk=Baekmuk Gulim
++-#dialog.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
++-dialog.bolditalic.korean-un=UnDotum Bold
++-#dialog.bolditalic.korean-un.motif=UnDotum Bold
+++dialog.bolditalic.korean-nanum=NanumGothic Bold
++
++ dialoginput.plain.latin-1=DejaVu Sans Mono
++ #dialoginput.plain.latin-1.motif=LuxiMono-Regular
++ dialoginput.plain.japanese-kochi=Kochi Gothic
++ dialoginput.plain.japanese-sazanami=Sazanami Gothic
++ dialoginput.plain.japanese-vlgothic=VL Gothic
++-dialoginput.plain.korean-baekmuk=Baekmuk Gulim
++-#dialoginput.plain.korean-baekmuk.motif=Baekmuk Gulim
++-dialoginput.plain.korean-un=UnDotum
++-#dialoginput.plain.korean-un.motif=UnDotum
+++dialoginput.plain.korean-nanum=NanumGothic
++
++ dialoginput.bold.latin-1=DejaVu Sans Mono Bold
++ #dialoginput.bold.latin-1.motif=LuxiMono-Bold
++ dialoginput.bold.japanese-kochi=Kochi Gothic
++ dialoginput.bold.japanese-sazanami=Sazanami Gothic
++ dialoginput.bold.japanese-vlgothic=VL Gothic
++-dialoginput.bold.korean-baekmuk=Baekmuk Gulim
++-#dialoginput.bold.korean-baekmuk.motif=Baekmuk Gulim
++-dialoginput.bold.korean-un=UnDotum Bold
++-#dialoginput.bold.korean-un.motif=UnDotum Bold
+++dialoginput.bold.korean-nanum=NanumGothic Bold
++
++ dialoginput.italic.latin-1=DejaVu Sans Mono Oblique
++ #dialoginput.italic.latin-1.motif=LuxiMono-Oblique
++ dialoginput.italic.japanese-kochi=Kochi Gothic
++ dialoginput.italic.japanese-sazanami=Sazanami Gothic
++ dialoginput.italic.japanese-vlgothic=VL Gothic
++-dialoginput.italic.korean-baekmuk=Baekmuk Gulim
++-#dialoginput.italic.korean-baekmuk.motif=Baekmuk Gulim
++-dialoginput.italic.korean-un=UnDotum
++-#dialoginput.italic.korean-un.motif=UnDotum
+++dialoginput.italic.korean-nanum=NanumGothic
++
++ dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
++ #dialoginput.bolditalic.latin-1.motif=LuxiMono-BoldOblique
++ dialoginput.bolditalic.japanese-kochi=Kochi Gothic
++ dialoginput.bolditalic.japanese-sazanami=Sazanami Gothic
++ dialoginput.bolditalic.japanese-vlgothic=VL Gothic
++-dialoginput.bolditalic.korean-baekmuk=Baekmuk Gulim
++-#dialoginput.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
++-dialoginput.bolditalic.korean-un=UnDotum Bold
++-#dialoginput.bolditalic.korean-un.motif=UnDotum Bold
+++dialoginput.bolditalic.korean-nanum=NanumGothic Bold
++
++ # Search Sequences
++
++@@ -262,11 +202,11 @@
++ sequence.allfonts.GB2312=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
++ sequence.allfonts.GBK=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
++ sequence.allfonts.x-euc-jp-linux=latin-1,japanese-vlgothic,japanese-sazanami,japanese-kochi
++-sequence.allfonts.EUC-KR=latin-1,korean-un,korean-baekmuk
+++sequence.allfonts.EUC-KR=latin-1,korean-nanum
++ sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-microhei,wqy-zenhei
++ sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-microhei,wqy-zenhei
++-#sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
++-sequence.fallback=wqy-microhei,uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
+++#sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
+++sequence.fallback=wqy-microhei,uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-nanum,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
++
++ # Exclusion Ranges
++
++@@ -298,12 +238,12 @@
++
++ filename.WenQuanYi_Micro_Hei=/usr/share/fonts/truetype/wqy/wqy-microhei.ttc
++ filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc
++-filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf
++-filename.UnBatang=/usr/share/fonts/truetype/unfonts/UnBatang.ttf
++-filename.UnBatang_Bold=/usr/share/fonts/truetype/unfonts/UnBatangBold.ttf
++-filename.Baekmuk_Gulim=/usr/share/fonts/truetype/baekmuk/gulim.ttf
++-filename.UnDotum=/usr/share/fonts/truetype/unfonts/UnDotum.ttf
++-filename.UnDotum_Bold=/usr/share/fonts/truetype/unfonts/UnDotumBold.ttf
+++filename.NanumMyeongjo=/usr/share/fonts/truetype/nanum/NanumMyeongjo.ttf
+++filename.NanumMyeongjo_Bold=/usr/share/fonts/truetype/nanum/NanumMyeongjoBold.ttf
+++filename.NanumGothic=/usr/share/fonts/truetype/nanum/NanumGothic.ttf
+++filename.NanumGothic_Bold=/usr/share/fonts/truetype/nanum/NanumGothicBold.ttf
+++filename.NanumGothicCoding=/usr/share/fonts/truetype/nanum-coding/NanumGothic_Coding.ttf
+++filename.NanumGothicCoding_Bold=/usr/share/fonts/truetype/nanum-coding/NanumGothic_Coding_Bold.ttf
++ filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic.ttf
++ filename.Sazanami_Gothic=/usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf
++ filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho.ttf
++@@ -346,5 +286,4 @@
++ awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi
++ awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami
++ awtfontpath.japanese-vlgothic=/usr/share/fonts/truetype/vlgothic
++-awtfontpath.korean-baekmuk=/usr/share/fonts/truetype/baekmuk
++-awtfontpath.korean-un=/usr/share/fonts/truetype/unfonts
+++awtfontpath.korean-nanum=/usr/share/fonts/truetype/nanum
--- /dev/null
--- /dev/null
++--- openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.orig
+++++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties
++@@ -37,6 +37,7 @@
++ #allfonts.uminghk.motif=AR PL UMing HK
++ allfonts.umingtw=AR PL UMing TW
++ #allfonts.umingtw.motif=AR PL UMing TW
+++allfonts.wqy-microhei=WenQuanYi Micro Hei
++ allfonts.wqy-zenhei=WenQuanYi Zen Hei
++ #allfonts.wqy-zenhei.motif=WenQuanYi Zen Hei
++ allfonts.shanheisun=AR PL ShanHeiSun Uni
++@@ -257,15 +258,15 @@
++ # Search Sequences
++
++ sequence.allfonts=latin-1
++-sequence.allfonts.GB18030=latin-1,umingcn,shanheisun,wqy-zenhei
++-sequence.allfonts.GB2312=latin-1,umingcn,shanheisun,wqy-zenhei
++-sequence.allfonts.GBK=latin-1,umingcn,shanheisun,wqy-zenhei
+++sequence.allfonts.GB18030=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
+++sequence.allfonts.GB2312=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
+++sequence.allfonts.GBK=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
++ sequence.allfonts.x-euc-jp-linux=latin-1,japanese-vlgothic,japanese-sazanami,japanese-kochi
++ sequence.allfonts.EUC-KR=latin-1,korean-un,korean-baekmuk
++-sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-zenhei
++-sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-zenhei
+++sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-microhei,wqy-zenhei
+++sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-microhei,wqy-zenhei
++ #sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
++-sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
+++sequence.fallback=wqy-microhei,uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
++
++ # Exclusion Ranges
++
++@@ -293,9 +294,10 @@
++ filename.AR_PL_UMing_CN=/usr/share/fonts/truetype/arphic/uming.ttc
++ filename.AR_PL_UMing_HK=/usr/share/fonts/truetype/arphic/uming.ttc
++ filename.AR_PL_UMing_TW=/usr/share/fonts/truetype/arphic/uming.ttc
++-filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/truetype/arphic/uming.ttf
+++filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/truetype/arphic/uming.ttc
++
++-filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf
+++filename.WenQuanYi_Micro_Hei=/usr/share/fonts/truetype/wqy/wqy-microhei.ttc
+++filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc
++ filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf
++ filename.UnBatang=/usr/share/fonts/truetype/unfonts/UnBatang.ttf
++ filename.UnBatang_Bold=/usr/share/fonts/truetype/unfonts/UnBatangBold.ttf
++@@ -339,6 +341,7 @@
++ awtfontpath.uminghk=/usr/share/fonts/truetype/arphic
++ awtfontpath.umingtw=/usr/share/fonts/truetype/arphic
++ awtfontpath.shanheisun=/usr/share/fonts/truetype/arphic
+++awtfontpath.wqy-microhei=/usr/share/fonts/truetype/wqy
++ awtfontpath.wqy-zenhei=/usr/share/fonts/truetype/wqy
++ awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi
++ awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami
--- /dev/null
--- /dev/null
++# DP: Hotspot: disable Exec Shield workaround (JDK-8023956).
++# DP: This workaround interacts badly with kernel changes to enlarge the stack
++# DP: gap, causing applications using JNI to crash (Debian bug #865303).
++# DP: Debian has never applied the Exec Shield patches.
++--- a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
+++++ b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
++@@ -890,7 +890,7 @@ void os::verify_stack_alignment() {
++ * updates (JDK-8023956).
++ */
++ void os::workaround_expand_exec_shield_cs_limit() {
++-#if defined(IA32) && !defined(ZERO)
+++#if 0
++ size_t page_size = os::vm_page_size();
++
++ /*
--- /dev/null
--- /dev/null
++--- a/hotspot/make/linux/Makefile.orig 2017-03-06 20:12:11.000000000 +0100
+++++ a/hotspot/make/linux/Makefile 2017-05-08 07:59:49.775242564 +0200
++@@ -349,7 +349,7 @@
++ # ENABLE_FULL_DEBUG_SYMBOLS value is used.
++ docs: checks
++ $(QUIETLY) mkdir -p $(SUBDIR_DOCS)
++- $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) BUILD_FLAVOR=product jvmtidocs
+++ #$(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) BUILD_FLAVOR=product jvmtidocs
++
++ # Synonyms for win32-like targets.
++ compiler2: debug product
++--- a/hotspot/make/linux/makefiles/defs.make.orig 2017-03-06 20:12:11.000000000 +0100
+++++ a/hotspot/make/linux/makefiles/defs.make 2017-05-08 11:28:50.001500588 +0200
++@@ -234,7 +234,7 @@
++ # Library suffix
++ LIBRARY_SUFFIX=so
++
++-EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
+++#EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
++
++ # client and server subdirectories have symbolic links to ../libjsig.so
++ EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
--- /dev/null
--- /dev/null
++# DP: Turn off -Werror for hotspot, overwrites -fpermissive.
++
++--- a/hotspot/make/linux/makefiles/gcc.make
+++++ b/hotspot/make/linux/makefiles/gcc.make
++@@ -201,7 +201,7 @@ else
++ endif
++
++ # Compiler warnings are treated as errors
++-WARNINGS_ARE_ERRORS = -Werror -Wno-error=format -Wno-error=deprecated
+++WARNINGS_ARE_ERRORS =
++
++ ifeq ($(USE_CLANG), true)
++ # However we need to clean the code up before we can unrestrictedly enable this option with Clang
--- /dev/null
--- /dev/null
++--- a/hotspot/src/share/vm/runtime/os.cpp
+++++ b/hotspot/src/share/vm/runtime/os.cpp
++@@ -1060,7 +1060,7 @@ void os::print_location(outputStream* st
++ // if C stack is walkable beyond current frame. The check for fp() is not
++ // necessary on Sparc, but it's harmless.
++ bool os::is_first_C_frame(frame* fr) {
++-#if (defined(IA64) && !defined(AIX)) && !defined(_WIN32)
+++#if (defined(IA64) && !defined(AIX)) && !defined(_WIN32) && !defined(LINUX)
++ // On IA64 we have to check if the callers bsp is still valid
++ // (i.e. within the register stack bounds).
++ // Notice: this only works for threads created by the VM and only if
--- /dev/null
--- /dev/null
++# DP: Set the hotspot default libpath to ignore lib64 and add multiarch
++
++--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++++ b/hotspot/src/os/linux/vm/os_linux.cpp
++@@ -318,10 +318,10 @@ void os::init_system_properties_values()
++ // 1: ...
++ // ...
++ // 7: The default directories, normally /lib and /usr/lib.
++-#if defined(AMD64) || defined(_LP64) && (defined(SPARC) || defined(PPC) || defined(S390))
++-#define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib"
+++#ifdef DEB_MULTIARCH
+++#define DEFAULT_LIBPATH "/usr/lib/" DEB_MULTIARCH "/jni" ":/lib/" DEB_MULTIARCH ":/usr/lib/" DEB_MULTIARCH ":/usr/lib/jni:/lib:/usr/lib"
++ #else
++-#define DEFAULT_LIBPATH "/lib:/usr/lib"
+++#define DEFAULT_LIBPATH "/usr/lib/jni:/lib:/usr/lib"
++ #endif
++
++ // Base path of extensions installed on the system.
++--- a/hotspot/make/linux/makefiles/vm.make
+++++ b/hotspot/make/linux/makefiles/vm.make
++@@ -99,6 +99,12 @@ CXXFLAGS = \
++ ${HS_LIB_ARCH} \
++ ${VM_DISTRO}
++
+++DEB_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null || true)
+++ifneq (,$(DEB_MULTIARCH))
+++CPPFLAGS += -DDEB_MULTIARCH="\"$(DEB_MULTIARCH)\""
+++CXXFLAGS += -DDEB_MULTIARCH="\"$(DEB_MULTIARCH)\""
+++endif
+++
++ # This is VERY important! The version define must only be supplied to vm_version.o
++ # If not, ccache will not re-use the cache at all, since the version string might contain
++ # a time and date.
--- /dev/null
--- /dev/null
++# DP: Set the hotspot default libpath to ignore lib64 and add multiarch
++
++--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++++ b/hotspot/src/os/linux/vm/os_linux.cpp
++@@ -308,10 +308,10 @@ void os::init_system_properties_values()
++ // 1: ...
++ // ...
++ // 7: The default directories, normally /lib and /usr/lib.
++-#if defined(AMD64) || defined(_LP64) && (defined(SPARC) || defined(PPC) || defined(S390)) || defined(BUILTIN_SIM)
++-#define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib"
+++#ifdef DEB_MULTIARCH
+++#define DEFAULT_LIBPATH "/usr/lib/" DEB_MULTIARCH "/jni" ":/lib/" DEB_MULTIARCH ":/usr/lib/" DEB_MULTIARCH ":/usr/lib/jni:/lib:/usr/lib"
++ #else
++-#define DEFAULT_LIBPATH "/lib:/usr/lib"
+++#define DEFAULT_LIBPATH "/usr/lib/jni:/lib:/usr/lib"
++ #endif
++
++ // Base path of extensions installed on the system.
++--- a/hotspot/make/linux/makefiles/vm.make
+++++ b/hotspot/make/linux/makefiles/vm.make
++@@ -99,6 +99,12 @@ CXXFLAGS = \
++ ${HS_LIB_ARCH} \
++ ${VM_DISTRO}
++
+++DEB_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null || true)
+++ifneq (,$(DEB_MULTIARCH))
+++CPPFLAGS += -DDEB_MULTIARCH="\"$(DEB_MULTIARCH)\""
+++CXXFLAGS += -DDEB_MULTIARCH="\"$(DEB_MULTIARCH)\""
+++endif
+++
++ # This is VERY important! The version define must only be supplied to vm_version.o
++ # If not, ccache will not re-use the cache at all, since the version string might contain
++ # a time and date.
--- /dev/null
--- /dev/null
++# DP: Set the hotspot default libpath to ignore lib64 and add multiarch
++
++--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++++ b/hotspot/src/os/linux/vm/os_linux.cpp
++@@ -366,10 +366,10 @@ void os::init_system_properties_values()
++ // 1: ...
++ // ...
++ // 7: The default directories, normally /lib and /usr/lib.
++-#if defined(AMD64) || defined(_LP64) && (defined(SPARC) || defined(PPC) || defined(S390))
++-#define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib"
+++#ifdef DEB_MULTIARCH
+++#define DEFAULT_LIBPATH "/usr/lib/" DEB_MULTIARCH "/jni" ":/lib/" DEB_MULTIARCH ":/usr/lib/" DEB_MULTIARCH ":/usr/lib/jni:/lib:/usr/lib"
++ #else
++-#define DEFAULT_LIBPATH "/lib:/usr/lib"
+++#define DEFAULT_LIBPATH "/usr/lib/jni:/lib:/usr/lib"
++ #endif
++
++ // Base path of extensions installed on the system.
++--- a/hotspot/make/linux/makefiles/vm.make
+++++ b/hotspot/make/linux/makefiles/vm.make
++@@ -99,6 +99,12 @@ CXXFLAGS = \
++ ${HS_LIB_ARCH} \
++ ${VM_DISTRO}
++
+++DEB_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null || true)
+++ifneq (,$(DEB_MULTIARCH))
+++CPPFLAGS += -DDEB_MULTIARCH="\"$(DEB_MULTIARCH)\""
+++CXXFLAGS += -DDEB_MULTIARCH="\"$(DEB_MULTIARCH)\""
+++endif
+++
++ # This is VERY important! The version define must only be supplied to vm_version.o
++ # If not, ccache will not re-use the cache at all, since the version string might contain
++ # a time and date.
--- /dev/null
--- /dev/null
++--- a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+++++ b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
++@@ -367,7 +367,7 @@ int CppInterpreter::native_entry(Method*
++ ThreadStateTransition::transition_from_java(thread, _thread_in_native);
++
++ // Make the call
++- intptr_t result[4 - LogBytesPerWord];
+++ intptr_t result[4 - LogBytesPerWord] __attribute__((__aligned__(__alignof__(double))));
++ ffi_call(handler->cif(), (void (*)()) function, result, arguments);
++
++ // Change the thread state back to _thread_in_Java.
--- /dev/null
--- /dev/null
++# Don't explicitly build with -march=i586 on i386 architectures.
++
++--- a/hotspot/make/linux/makefiles/gcc.make
+++++ b/hotspot/make/linux/makefiles/gcc.make
++@@ -171,7 +171,7 @@ ifeq ($(USE_CLANG), true)
++ endif
++
++ ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
++-ARCHFLAG/i486 = -m32 -march=i586
+++ARCHFLAG/i486 = -m32
++ ARCHFLAG/amd64 = -m64 $(STACK_ALIGNMENT_OPT)
++ ARCHFLAG/ia64 =
++ ARCHFLAG/sparc = -m32 -mcpu=v9
--- /dev/null
--- /dev/null
++
++# HG changeset patch
++# User mdoerr
++# Date 1507822192 -3600
++# Node ID 9575483cce09eeb46b25c401cb2465050c1c9194
++# Parent 4dd24f4ca140dbad4f85cc5ef0070f584d4c44b7
++8145913: PPC64: add Montgomery multiply intrinsic
++Reviewed-by: aph, goetz, mdoerr
++Contributed-by: Gustavo Serra Scalet <gustavo.scalet@eldorado.org.br>
++
++--- a/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
+++++ b/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
++@@ -1179,6 +1179,8 @@ class Assembler : public AbstractAssembl
++ inline void mullw_( Register d, Register a, Register b);
++ inline void mulhw( Register d, Register a, Register b);
++ inline void mulhw_( Register d, Register a, Register b);
+++ inline void mulhwu( Register d, Register a, Register b);
+++ inline void mulhwu_(Register d, Register a, Register b);
++ inline void mulhd( Register d, Register a, Register b);
++ inline void mulhd_( Register d, Register a, Register b);
++ inline void mulhdu( Register d, Register a, Register b);
++--- a/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
+++++ b/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
++@@ -109,6 +109,8 @@ inline void Assembler::mullw( Register
++ inline void Assembler::mullw_( Register d, Register a, Register b) { emit_int32(MULLW_OPCODE | rt(d) | ra(a) | rb(b) | oe(0) | rc(1)); }
++ inline void Assembler::mulhw( Register d, Register a, Register b) { emit_int32(MULHW_OPCODE | rt(d) | ra(a) | rb(b) | rc(0)); }
++ inline void Assembler::mulhw_( Register d, Register a, Register b) { emit_int32(MULHW_OPCODE | rt(d) | ra(a) | rb(b) | rc(1)); }
+++inline void Assembler::mulhwu( Register d, Register a, Register b) { emit_int32(MULHWU_OPCODE | rt(d) | ra(a) | rb(b) | rc(0)); }
+++inline void Assembler::mulhwu_(Register d, Register a, Register b) { emit_int32(MULHWU_OPCODE | rt(d) | ra(a) | rb(b) | rc(1)); }
++ inline void Assembler::mulhd( Register d, Register a, Register b) { emit_int32(MULHD_OPCODE | rt(d) | ra(a) | rb(b) | rc(0)); }
++ inline void Assembler::mulhd_( Register d, Register a, Register b) { emit_int32(MULHD_OPCODE | rt(d) | ra(a) | rb(b) | rc(1)); }
++ inline void Assembler::mulhdu( Register d, Register a, Register b) { emit_int32(MULHDU_OPCODE | rt(d) | ra(a) | rb(b) | rc(0)); }
++--- a/hotspot/src/cpu/ppc/vm/c2_init_ppc.cpp
+++++ b/hotspot/src/cpu/ppc/vm/c2_init_ppc.cpp
++@@ -45,4 +45,10 @@ void Compile::pd_compiler2_init() {
++ FLAG_SET_ERGO(bool, InsertEndGroupPPC64, true);
++ }
++ }
+++
+++ if (OptimizeFill) {
+++ warning("OptimizeFill is not supported on this CPU.");
+++ FLAG_SET_DEFAULT(OptimizeFill, false);
+++ }
+++
++ }
++--- a/hotspot/src/cpu/ppc/vm/sharedRuntime_ppc.cpp
+++++ b/hotspot/src/cpu/ppc/vm/sharedRuntime_ppc.cpp
++@@ -42,6 +42,8 @@
++ #include "opto/runtime.hpp"
++ #endif
++
+++#include <alloca.h>
+++
++ #define __ masm->
++
++ #ifdef PRODUCT
++@@ -3268,3 +3270,245 @@ RuntimeStub* SharedRuntime::generate_res
++ return RuntimeStub::new_runtime_stub(name, &buffer, frame_complete, frame_size_in_bytes/wordSize,
++ oop_maps, true);
++ }
+++
+++
+++//------------------------------Montgomery multiplication------------------------
+++//
+++
+++// Subtract 0:b from carry:a. Return carry.
+++static unsigned long
+++sub(unsigned long a[], unsigned long b[], unsigned long carry, long len) {
+++ long i = 0;
+++ unsigned long tmp, tmp2;
+++ __asm__ __volatile__ (
+++ "subfc %[tmp], %[tmp], %[tmp] \n" // pre-set CA
+++ "mtctr %[len] \n"
+++ "0: \n"
+++ "ldx %[tmp], %[i], %[a] \n"
+++ "ldx %[tmp2], %[i], %[b] \n"
+++ "subfe %[tmp], %[tmp2], %[tmp] \n" // subtract extended
+++ "stdx %[tmp], %[i], %[a] \n"
+++ "addi %[i], %[i], 8 \n"
+++ "bdnz 0b \n"
+++ "addme %[tmp], %[carry] \n" // carry + CA - 1
+++ : [i]"+b"(i), [tmp]"=&r"(tmp), [tmp2]"=&r"(tmp2)
+++ : [a]"r"(a), [b]"r"(b), [carry]"r"(carry), [len]"r"(len)
+++ : "ctr", "xer", "memory"
+++ );
+++ return tmp;
+++}
+++
+++// Multiply (unsigned) Long A by Long B, accumulating the double-
+++// length result into the accumulator formed of T0, T1, and T2.
+++inline void MACC(unsigned long A, unsigned long B, unsigned long &T0, unsigned long &T1, unsigned long &T2) {
+++ unsigned long hi, lo;
+++ __asm__ __volatile__ (
+++ "mulld %[lo], %[A], %[B] \n"
+++ "mulhdu %[hi], %[A], %[B] \n"
+++ "addc %[T0], %[T0], %[lo] \n"
+++ "adde %[T1], %[T1], %[hi] \n"
+++ "addze %[T2], %[T2] \n"
+++ : [hi]"=&r"(hi), [lo]"=&r"(lo), [T0]"+r"(T0), [T1]"+r"(T1), [T2]"+r"(T2)
+++ : [A]"r"(A), [B]"r"(B)
+++ : "xer"
+++ );
+++}
+++
+++// As above, but add twice the double-length result into the
+++// accumulator.
+++inline void MACC2(unsigned long A, unsigned long B, unsigned long &T0, unsigned long &T1, unsigned long &T2) {
+++ unsigned long hi, lo;
+++ __asm__ __volatile__ (
+++ "mulld %[lo], %[A], %[B] \n"
+++ "mulhdu %[hi], %[A], %[B] \n"
+++ "addc %[T0], %[T0], %[lo] \n"
+++ "adde %[T1], %[T1], %[hi] \n"
+++ "addze %[T2], %[T2] \n"
+++ "addc %[T0], %[T0], %[lo] \n"
+++ "adde %[T1], %[T1], %[hi] \n"
+++ "addze %[T2], %[T2] \n"
+++ : [hi]"=&r"(hi), [lo]"=&r"(lo), [T0]"+r"(T0), [T1]"+r"(T1), [T2]"+r"(T2)
+++ : [A]"r"(A), [B]"r"(B)
+++ : "xer"
+++ );
+++}
+++
+++// Fast Montgomery multiplication. The derivation of the algorithm is
+++// in "A Cryptographic Library for the Motorola DSP56000,
+++// Dusse and Kaliski, Proc. EUROCRYPT 90, pp. 230-237".
+++static void
+++montgomery_multiply(unsigned long a[], unsigned long b[], unsigned long n[],
+++ unsigned long m[], unsigned long inv, int len) {
+++ unsigned long t0 = 0, t1 = 0, t2 = 0; // Triple-precision accumulator
+++ int i;
+++
+++ assert(inv * n[0] == -1UL, "broken inverse in Montgomery multiply");
+++
+++ for (i = 0; i < len; i++) {
+++ int j;
+++ for (j = 0; j < i; j++) {
+++ MACC(a[j], b[i-j], t0, t1, t2);
+++ MACC(m[j], n[i-j], t0, t1, t2);
+++ }
+++ MACC(a[i], b[0], t0, t1, t2);
+++ m[i] = t0 * inv;
+++ MACC(m[i], n[0], t0, t1, t2);
+++
+++ assert(t0 == 0, "broken Montgomery multiply");
+++
+++ t0 = t1; t1 = t2; t2 = 0;
+++ }
+++
+++ for (i = len; i < 2*len; i++) {
+++ int j;
+++ for (j = i-len+1; j < len; j++) {
+++ MACC(a[j], b[i-j], t0, t1, t2);
+++ MACC(m[j], n[i-j], t0, t1, t2);
+++ }
+++ m[i-len] = t0;
+++ t0 = t1; t1 = t2; t2 = 0;
+++ }
+++
+++ while (t0) {
+++ t0 = sub(m, n, t0, len);
+++ }
+++}
+++
+++// Fast Montgomery squaring. This uses asymptotically 25% fewer
+++// multiplies so it should be up to 25% faster than Montgomery
+++// multiplication. However, its loop control is more complex and it
+++// may actually run slower on some machines.
+++static void
+++montgomery_square(unsigned long a[], unsigned long n[],
+++ unsigned long m[], unsigned long inv, int len) {
+++ unsigned long t0 = 0, t1 = 0, t2 = 0; // Triple-precision accumulator
+++ int i;
+++
+++ assert(inv * n[0] == -1UL, "broken inverse in Montgomery multiply");
+++
+++ for (i = 0; i < len; i++) {
+++ int j;
+++ int end = (i+1)/2;
+++ for (j = 0; j < end; j++) {
+++ MACC2(a[j], a[i-j], t0, t1, t2);
+++ MACC(m[j], n[i-j], t0, t1, t2);
+++ }
+++ if ((i & 1) == 0) {
+++ MACC(a[j], a[j], t0, t1, t2);
+++ }
+++ for (; j < i; j++) {
+++ MACC(m[j], n[i-j], t0, t1, t2);
+++ }
+++ m[i] = t0 * inv;
+++ MACC(m[i], n[0], t0, t1, t2);
+++
+++ assert(t0 == 0, "broken Montgomery square");
+++
+++ t0 = t1; t1 = t2; t2 = 0;
+++ }
+++
+++ for (i = len; i < 2*len; i++) {
+++ int start = i-len+1;
+++ int end = start + (len - start)/2;
+++ int j;
+++ for (j = start; j < end; j++) {
+++ MACC2(a[j], a[i-j], t0, t1, t2);
+++ MACC(m[j], n[i-j], t0, t1, t2);
+++ }
+++ if ((i & 1) == 0) {
+++ MACC(a[j], a[j], t0, t1, t2);
+++ }
+++ for (; j < len; j++) {
+++ MACC(m[j], n[i-j], t0, t1, t2);
+++ }
+++ m[i-len] = t0;
+++ t0 = t1; t1 = t2; t2 = 0;
+++ }
+++
+++ while (t0) {
+++ t0 = sub(m, n, t0, len);
+++ }
+++}
+++
+++// The threshold at which squaring is advantageous was determined
+++// experimentally on an i7-3930K (Ivy Bridge) CPU @ 3.5GHz.
+++// Doesn't seem to be relevant for Power8 so we use the same value.
+++#define MONTGOMERY_SQUARING_THRESHOLD 64
+++
+++// Copy len longwords from s to d, word-swapping as we go. The
+++// destination array is reversed.
+++static void reverse_words(unsigned long *s, unsigned long *d, int len) {
+++ d += len;
+++ while(len-- > 0) {
+++ d--;
+++ unsigned long s_val = *s;
+++ // Swap words in a longword on little endian machines.
+++#ifdef VM_LITTLE_ENDIAN
+++ s_val = (s_val << 32) | (s_val >> 32);
+++#endif
+++ *d = s_val;
+++ s++;
+++ }
+++}
+++
+++void SharedRuntime::montgomery_multiply(jint *a_ints, jint *b_ints, jint *n_ints,
+++ jint len, jlong inv,
+++ jint *m_ints) {
+++ assert(len % 2 == 0, "array length in montgomery_multiply must be even");
+++ int longwords = len/2;
+++ assert(longwords > 0, "unsupported");
+++
+++ // Make very sure we don't use so much space that the stack might
+++ // overflow. 512 jints corresponds to an 16384-bit integer and
+++ // will use here a total of 8k bytes of stack space.
+++ int total_allocation = longwords * sizeof (unsigned long) * 4;
+++ guarantee(total_allocation <= 8192, "must be");
+++ unsigned long *scratch = (unsigned long *)alloca(total_allocation);
+++
+++ // Local scratch arrays
+++ unsigned long
+++ *a = scratch + 0 * longwords,
+++ *b = scratch + 1 * longwords,
+++ *n = scratch + 2 * longwords,
+++ *m = scratch + 3 * longwords;
+++
+++ reverse_words((unsigned long *)a_ints, a, longwords);
+++ reverse_words((unsigned long *)b_ints, b, longwords);
+++ reverse_words((unsigned long *)n_ints, n, longwords);
+++
+++ ::montgomery_multiply(a, b, n, m, (unsigned long)inv, longwords);
+++
+++ reverse_words(m, (unsigned long *)m_ints, longwords);
+++}
+++
+++void SharedRuntime::montgomery_square(jint *a_ints, jint *n_ints,
+++ jint len, jlong inv,
+++ jint *m_ints) {
+++ assert(len % 2 == 0, "array length in montgomery_square must be even");
+++ int longwords = len/2;
+++ assert(longwords > 0, "unsupported");
+++
+++ // Make very sure we don't use so much space that the stack might
+++ // overflow. 512 jints corresponds to an 16384-bit integer and
+++ // will use here a total of 6k bytes of stack space.
+++ int total_allocation = longwords * sizeof (unsigned long) * 3;
+++ guarantee(total_allocation <= 8192, "must be");
+++ unsigned long *scratch = (unsigned long *)alloca(total_allocation);
+++
+++ // Local scratch arrays
+++ unsigned long
+++ *a = scratch + 0 * longwords,
+++ *n = scratch + 1 * longwords,
+++ *m = scratch + 2 * longwords;
+++
+++ reverse_words((unsigned long *)a_ints, a, longwords);
+++ reverse_words((unsigned long *)n_ints, n, longwords);
+++
+++ if (len >= MONTGOMERY_SQUARING_THRESHOLD) {
+++ ::montgomery_square(a, n, m, (unsigned long)inv, longwords);
+++ } else {
+++ ::montgomery_multiply(a, a, n, m, (unsigned long)inv, longwords);
+++ }
+++
+++ reverse_words(m, (unsigned long *)m_ints, longwords);
+++}
++--- a/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
+++++ b/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp
++@@ -2094,6 +2094,15 @@ class StubGenerator: public StubCodeGene
++ generate_safefetch("SafeFetchN", sizeof(intptr_t), &StubRoutines::_safefetchN_entry,
++ &StubRoutines::_safefetchN_fault_pc,
++ &StubRoutines::_safefetchN_continuation_pc);
+++
+++ if (UseMontgomeryMultiplyIntrinsic) {
+++ StubRoutines::_montgomeryMultiply
+++ = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_multiply);
+++ }
+++ if (UseMontgomerySquareIntrinsic) {
+++ StubRoutines::_montgomerySquare
+++ = CAST_FROM_FN_PTR(address, SharedRuntime::montgomery_square);
+++ }
++ }
++
++ public:
++--- a/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
+++++ b/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
++@@ -265,7 +265,7 @@ void TemplateInterpreterGenerator::gener
++ __ cmpdi(CCR0, Rmdo, 0);
++ __ beq(CCR0, no_mdo);
++
++- // Increment backedge counter in the MDO.
+++ // Increment invocation counter in the MDO.
++ const int mdo_bc_offs = in_bytes(MethodData::backedge_counter_offset()) + in_bytes(InvocationCounter::counter_offset());
++ __ lwz(Rscratch2, mdo_bc_offs, Rmdo);
++ __ addi(Rscratch2, Rscratch2, increment);
++@@ -277,12 +277,12 @@ void TemplateInterpreterGenerator::gener
++ }
++
++ // Increment counter in MethodCounters*.
++- const int mo_bc_offs = in_bytes(MethodCounters::backedge_counter_offset()) + in_bytes(InvocationCounter::counter_offset());
+++ const int mo_ic_offs = in_bytes(MethodCounters::invocation_counter_offset()) + in_bytes(InvocationCounter::counter_offset());
++ __ bind(no_mdo);
++ __ get_method_counters(R19_method, R3_counters, done);
++- __ lwz(Rscratch2, mo_bc_offs, R3_counters);
+++ __ lwz(Rscratch2, mo_ic_offs, R3_counters);
++ __ addi(Rscratch2, Rscratch2, increment);
++- __ stw(Rscratch2, mo_bc_offs, R3_counters);
+++ __ stw(Rscratch2, mo_ic_offs, R3_counters);
++ __ load_const_optimized(Rscratch1, mask, R0);
++ __ and_(Rscratch1, Rscratch2, Rscratch1);
++ __ beq(CCR0, *overflow);
++--- a/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
+++++ b/hotspot/src/cpu/ppc/vm/vm_version_ppc.cpp
++@@ -177,6 +177,12 @@ void VM_Version::initialize() {
++ FLAG_SET_DEFAULT(UseSHA512Intrinsics, false);
++ }
++
+++ if (FLAG_IS_DEFAULT(UseMontgomeryMultiplyIntrinsic)) {
+++ UseMontgomeryMultiplyIntrinsic = true;
+++ }
+++ if (FLAG_IS_DEFAULT(UseMontgomerySquareIntrinsic)) {
+++ UseMontgomerySquareIntrinsic = true;
+++ }
++ }
++
++ void VM_Version::print_features() {
++--- a/hotspot/src/share/vm/opto/library_call.cpp
+++++ b/hotspot/src/share/vm/opto/library_call.cpp
++@@ -6031,11 +6031,21 @@ bool LibraryCallKit::inline_montgomeryMu
++ Node* n_start = array_element_address(n, intcon(0), n_elem);
++ Node* m_start = array_element_address(m, intcon(0), m_elem);
++
++- Node* call = make_runtime_call(RC_LEAF,
++- OptoRuntime::montgomeryMultiply_Type(),
++- stubAddr, stubName, TypePtr::BOTTOM,
++- a_start, b_start, n_start, len, inv, top(),
++- m_start);
+++ Node* call = NULL;
+++ if (CCallingConventionRequiresIntsAsLongs) {
+++ Node* len_I2L = ConvI2L(len);
+++ call = make_runtime_call(RC_LEAF,
+++ OptoRuntime::montgomeryMultiply_Type(),
+++ stubAddr, stubName, TypePtr::BOTTOM,
+++ a_start, b_start, n_start, len_I2L XTOP, inv,
+++ top(), m_start);
+++ } else {
+++ call = make_runtime_call(RC_LEAF,
+++ OptoRuntime::montgomeryMultiply_Type(),
+++ stubAddr, stubName, TypePtr::BOTTOM,
+++ a_start, b_start, n_start, len, inv, top(),
+++ m_start);
+++ }
++ set_result(m);
++ }
++
++@@ -6085,11 +6095,22 @@ bool LibraryCallKit::inline_montgomerySq
++ Node* n_start = array_element_address(n, intcon(0), n_elem);
++ Node* m_start = array_element_address(m, intcon(0), m_elem);
++
++- Node* call = make_runtime_call(RC_LEAF,
++- OptoRuntime::montgomerySquare_Type(),
++- stubAddr, stubName, TypePtr::BOTTOM,
++- a_start, n_start, len, inv, top(),
++- m_start);
+++ Node* call = NULL;
+++ if (CCallingConventionRequiresIntsAsLongs) {
+++ Node* len_I2L = ConvI2L(len);
+++ call = make_runtime_call(RC_LEAF,
+++ OptoRuntime::montgomerySquare_Type(),
+++ stubAddr, stubName, TypePtr::BOTTOM,
+++ a_start, n_start, len_I2L XTOP, inv, top(),
+++ m_start);
+++ } else {
+++ call = make_runtime_call(RC_LEAF,
+++ OptoRuntime::montgomerySquare_Type(),
+++ stubAddr, stubName, TypePtr::BOTTOM,
+++ a_start, n_start, len, inv, top(),
+++ m_start);
+++ }
+++
++ set_result(m);
++ }
++
++--- a/hotspot/src/share/vm/opto/runtime.cpp
+++++ b/hotspot/src/share/vm/opto/runtime.cpp
++@@ -1003,12 +1003,20 @@ const TypeFunc* OptoRuntime::montgomeryM
++ // create input type (domain)
++ int num_args = 7;
++ int argcnt = num_args;
+++ if (CCallingConventionRequiresIntsAsLongs) {
+++ argcnt++; // additional placeholder
+++ }
++ const Type** fields = TypeTuple::fields(argcnt);
++ int argp = TypeFunc::Parms;
++ fields[argp++] = TypePtr::NOTNULL; // a
++ fields[argp++] = TypePtr::NOTNULL; // b
++ fields[argp++] = TypePtr::NOTNULL; // n
++- fields[argp++] = TypeInt::INT; // len
+++ if (CCallingConventionRequiresIntsAsLongs) {
+++ fields[argp++] = TypeLong::LONG; // len
+++ fields[argp++] = TypeLong::HALF; // placeholder
+++ } else {
+++ fields[argp++] = TypeInt::INT; // len
+++ }
++ fields[argp++] = TypeLong::LONG; // inv
++ fields[argp++] = Type::HALF;
++ fields[argp++] = TypePtr::NOTNULL; // result
++@@ -1027,11 +1035,19 @@ const TypeFunc* OptoRuntime::montgomeryS
++ // create input type (domain)
++ int num_args = 6;
++ int argcnt = num_args;
+++ if (CCallingConventionRequiresIntsAsLongs) {
+++ argcnt++; // additional placeholder
+++ }
++ const Type** fields = TypeTuple::fields(argcnt);
++ int argp = TypeFunc::Parms;
++ fields[argp++] = TypePtr::NOTNULL; // a
++ fields[argp++] = TypePtr::NOTNULL; // n
++- fields[argp++] = TypeInt::INT; // len
+++ if (CCallingConventionRequiresIntsAsLongs) {
+++ fields[argp++] = TypeLong::LONG; // len
+++ fields[argp++] = TypeLong::HALF; // placeholder
+++ } else {
+++ fields[argp++] = TypeInt::INT; // len
+++ }
++ fields[argp++] = TypeLong::LONG; // inv
++ fields[argp++] = Type::HALF;
++ fields[argp++] = TypePtr::NOTNULL; // result
--- /dev/null
--- /dev/null
++
++# HG changeset patch
++# User goetz
++# Date 1477563748 -7200
++# Node ID 75f5e49c6187981a9c9e6846f652a7d472ef555e
++# Parent 9575483cce09eeb46b25c401cb2465050c1c9194
++8168318: PPC64: Use cmpldi instead of li/cmpld
++Reviewed-by: goetz
++Contributed-by: igor.nunes@eldorado.org.br
++
++diff -r 9575483cce09 -r 75f5e49c6187 src/cpu/ppc/vm/ppc.ad
++--- openjdk/hotspot/src/cpu/ppc/vm/ppc.ad Thu Oct 12 16:29:52 2017 +0100
+++++ openjdk/hotspot/src/cpu/ppc/vm/ppc.ad Thu Oct 27 12:22:28 2016 +0200
++@@ -10571,6 +10571,17 @@
++ ins_pipe(pipe_class_compare);
++ %}
++
+++instruct cmpP_reg_null(flagsReg crx, iRegP_N2P src1, immP_0or1 src2) %{
+++ match(Set crx (CmpP src1 src2));
+++ format %{ "CMPLDI $crx, $src1, $src2 \t// ptr" %}
+++ size(4);
+++ ins_encode %{
+++ // TODO: PPC port $archOpcode(ppc64Opcode_cmpl);
+++ __ cmpldi($crx$$CondRegister, $src1$$Register, (int)((short)($src2$$constant & 0xFFFF)));
+++ %}
+++ ins_pipe(pipe_class_compare);
+++%}
+++
++ // Used in postalloc expand.
++ instruct cmpP_reg_imm16(flagsReg crx, iRegPsrc src1, immL16 src2) %{
++ // This match rule prevents reordering of node before a safepoint.
++
--- /dev/null
--- /dev/null
++
++# HG changeset patch
++# User mdoerr
++# Date 1480079712 7200
++# Node ID 7c3dc80542b645e7e8b914f96371636db764c110
++# Parent 75f5e49c6187981a9c9e6846f652a7d472ef555e
++8170328: PPC64: Use andis instead of lis/and
++Reviewed-by: goetz, mdoerr
++Contributed-by: Igor Nunes <igor.nunes@eldorado.org.br>
++
++diff -r 75f5e49c6187 -r 7c3dc80542b6 src/cpu/ppc/vm/ppc.ad
++--- openjdk/hotspot/src/cpu/ppc/vm/ppc.ad Thu Oct 27 12:22:28 2016 +0200
+++++ openjdk/hotspot/src/cpu/ppc/vm/ppc.ad Fri Nov 25 11:15:12 2016 -0200
++@@ -8889,6 +8889,19 @@
++ ins_pipe(pipe_class_default);
++ %}
++
+++// Left shifted Immediate And
+++instruct andI_reg_immIhi16(iRegIdst dst, iRegIsrc src1, immIhi16 src2, flagsRegCR0 cr0) %{
+++ match(Set dst (AndI src1 src2));
+++ effect(KILL cr0);
+++ format %{ "ANDIS $dst, $src1, $src2.hi" %}
+++ size(4);
+++ ins_encode %{
+++ // TODO: PPC port $archOpcode(ppc64Opcode_andis_);
+++ __ andis_($dst$$Register, $src1$$Register, (int)((unsigned short)(($src2$$constant & 0xFFFF0000) >> 16)));
+++ %}
+++ ins_pipe(pipe_class_default);
+++%}
+++
++ // Immediate And
++ instruct andI_reg_uimm16(iRegIdst dst, iRegIsrc src1, uimmI16 src2, flagsRegCR0 cr0) %{
++ match(Set dst (AndI src1 src2));
++
--- /dev/null
--- /dev/null
++
++# HG changeset patch
++# User zgu
++# Date 1496858375 14400
++# Node ID d3cc20285653ad55dab95c6bd5430cb8afade2b8
++# Parent f040971765427ce2c85afa46d950a89c0fbf97cc
++8181055: PPC64: "mbind: Invalid argument" still seen after 8175813
++Summary: Use numa_interleave_memory v2 api when available
++Reviewed-by: dholmes, shade, gromero
++
++--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++++ b/hotspot/src/os/linux/vm/os_linux.cpp
++@@ -2822,11 +2822,8 @@ extern "C" JNIEXPORT void numa_warn(int
++ extern "C" JNIEXPORT void numa_error(char *where) { }
++ extern "C" JNIEXPORT int fork1() { return fork(); }
++
++-
++-// If we are running with libnuma version > 2, then we should
++-// be trying to use symbols with versions 1.1
++-// If we are running with earlier version, which did not have symbol versions,
++-// we should use the base version.
+++// Handle request to load libnuma symbol version 1.1 (API v1). If it fails
+++// load symbol from base version instead.
++ void* os::Linux::libnuma_dlsym(void* handle, const char *name) {
++ void *f = dlvsym(handle, name, "libnuma_1.1");
++ if (f == NULL) {
++@@ -2835,6 +2832,12 @@ void* os::Linux::libnuma_dlsym(void* han
++ return f;
++ }
++
+++// Handle request to load libnuma symbol version 1.2 (API v2) only.
+++// Return NULL if the symbol is not defined in this particular version.
+++void* os::Linux::libnuma_v2_dlsym(void* handle, const char* name) {
+++ return dlvsym(handle, name, "libnuma_1.2");
+++}
+++
++ bool os::Linux::libnuma_init() {
++ // sched_getcpu() should be in libc.
++ set_sched_getcpu(CAST_TO_FN_PTR(sched_getcpu_func_t,
++@@ -2859,6 +2862,8 @@ bool os::Linux::libnuma_init() {
++ libnuma_dlsym(handle, "numa_tonode_memory")));
++ set_numa_interleave_memory(CAST_TO_FN_PTR(numa_interleave_memory_func_t,
++ libnuma_dlsym(handle, "numa_interleave_memory")));
+++ set_numa_interleave_memory_v2(CAST_TO_FN_PTR(numa_interleave_memory_v2_func_t,
+++ libnuma_v2_dlsym(handle, "numa_interleave_memory")));
++ set_numa_set_bind_policy(CAST_TO_FN_PTR(numa_set_bind_policy_func_t,
++ libnuma_dlsym(handle, "numa_set_bind_policy")));
++ set_numa_bitmask_isbitset(CAST_TO_FN_PTR(numa_bitmask_isbitset_func_t,
++@@ -2978,6 +2983,7 @@ os::Linux::numa_num_configured_nodes_fun
++ os::Linux::numa_available_func_t os::Linux::_numa_available;
++ os::Linux::numa_tonode_memory_func_t os::Linux::_numa_tonode_memory;
++ os::Linux::numa_interleave_memory_func_t os::Linux::_numa_interleave_memory;
+++os::Linux::numa_interleave_memory_v2_func_t os::Linux::_numa_interleave_memory_v2;
++ os::Linux::numa_set_bind_policy_func_t os::Linux::_numa_set_bind_policy;
++ os::Linux::numa_bitmask_isbitset_func_t os::Linux::_numa_bitmask_isbitset;
++ os::Linux::numa_distance_func_t os::Linux::_numa_distance;
++--- a/hotspot/src/os/linux/vm/os_linux.hpp
+++++ b/hotspot/src/os/linux/vm/os_linux.hpp
++@@ -190,6 +190,8 @@ class Linux {
++ static void libpthread_init();
++ static bool libnuma_init();
++ static void* libnuma_dlsym(void* handle, const char* name);
+++ // libnuma v2 (libnuma_1.2) symbols
+++ static void* libnuma_v2_dlsym(void* handle, const char* name);
++ // Minimum stack size a thread can be created with (allowing
++ // the VM to completely create the thread and enter user code)
++ static size_t min_stack_allowed;
++@@ -250,6 +252,8 @@ private:
++ typedef int (*numa_available_func_t)(void);
++ typedef int (*numa_tonode_memory_func_t)(void *start, size_t size, int node);
++ typedef void (*numa_interleave_memory_func_t)(void *start, size_t size, unsigned long *nodemask);
+++ typedef void (*numa_interleave_memory_v2_func_t)(void *start, size_t size, struct bitmask* mask);
+++
++ typedef void (*numa_set_bind_policy_func_t)(int policy);
++ typedef int (*numa_bitmask_isbitset_func_t)(struct bitmask *bmp, unsigned int n);
++ typedef int (*numa_distance_func_t)(int node1, int node2);
++@@ -261,6 +265,7 @@ private:
++ static numa_available_func_t _numa_available;
++ static numa_tonode_memory_func_t _numa_tonode_memory;
++ static numa_interleave_memory_func_t _numa_interleave_memory;
+++ static numa_interleave_memory_v2_func_t _numa_interleave_memory_v2;
++ static numa_set_bind_policy_func_t _numa_set_bind_policy;
++ static numa_bitmask_isbitset_func_t _numa_bitmask_isbitset;
++ static numa_distance_func_t _numa_distance;
++@@ -275,6 +280,7 @@ private:
++ static void set_numa_available(numa_available_func_t func) { _numa_available = func; }
++ static void set_numa_tonode_memory(numa_tonode_memory_func_t func) { _numa_tonode_memory = func; }
++ static void set_numa_interleave_memory(numa_interleave_memory_func_t func) { _numa_interleave_memory = func; }
+++ static void set_numa_interleave_memory_v2(numa_interleave_memory_v2_func_t func) { _numa_interleave_memory_v2 = func; }
++ static void set_numa_set_bind_policy(numa_set_bind_policy_func_t func) { _numa_set_bind_policy = func; }
++ static void set_numa_bitmask_isbitset(numa_bitmask_isbitset_func_t func) { _numa_bitmask_isbitset = func; }
++ static void set_numa_distance(numa_distance_func_t func) { _numa_distance = func; }
++@@ -296,7 +302,10 @@ public:
++ return _numa_tonode_memory != NULL ? _numa_tonode_memory(start, size, node) : -1;
++ }
++ static void numa_interleave_memory(void *start, size_t size) {
++- if (_numa_interleave_memory != NULL && _numa_all_nodes != NULL) {
+++ // Use v2 api if available
+++ if (_numa_interleave_memory_v2 != NULL && _numa_all_nodes_ptr != NULL) {
+++ _numa_interleave_memory_v2(start, size, _numa_all_nodes_ptr);
+++ } else if (_numa_interleave_memory != NULL && _numa_all_nodes != NULL) {
++ _numa_interleave_memory(start, size, _numa_all_nodes);
++ }
++ }
--- /dev/null
--- /dev/null
++
++# HG changeset patch
++# User mdoerr
++# Date 1507822572 -3600
++# Node ID 584eac5794ff0a5fe5d86ef165db732ee85b8661
++# Parent 7c3dc80542b645e7e8b914f96371636db764c110
++8181810: PPC64: Leverage extrdi for bitfield extract
++Reviewed-by: mdoerr, simonis
++Contributed-by: Matthew Brandyberry <mbrandy@linux.vnet.ibm.com>
++
++diff -r 7c3dc80542b6 -r 584eac5794ff src/cpu/ppc/vm/ppc.ad
++--- openjdk/hotspot/src/cpu/ppc/vm/ppc.ad Fri Nov 25 11:15:12 2016 -0200
+++++ openjdk/hotspot/src/cpu/ppc/vm/ppc.ad Thu Oct 12 16:36:12 2017 +0100
++@@ -1,6 +1,6 @@
++ //
++ // Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
++-// Copyright 2012, 2014 SAP AG. All rights reserved.
+++// Copyright (c) 2012, 2017 SAP SE. All rights reserved.
++ // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ //
++ // This code is free software; you can redistribute it and/or modify it
++@@ -8610,6 +8610,44 @@
++ ins_pipe(pipe_class_default);
++ %}
++
+++// Bitfield Extract: URShiftI + AndI
+++instruct andI_urShiftI_regI_immI_immIpow2minus1(iRegIdst dst, iRegIsrc src1, immI src2, immIpow2minus1 src3) %{
+++ match(Set dst (AndI (URShiftI src1 src2) src3));
+++
+++ format %{ "EXTRDI $dst, $src1, shift=$src2, mask=$src3 \t// int bitfield extract" %}
+++ size(4);
+++ ins_encode %{
+++ // TODO: PPC port $archOpcode(ppc64Opcode_rldicl);
+++ int rshift = ($src2$$constant) & 0x1f;
+++ int length = log2_long(((jlong) $src3$$constant) + 1);
+++ if (rshift + length > 32) {
+++ // if necessary, adjust mask to omit rotated bits.
+++ length = 32 - rshift;
+++ }
+++ __ extrdi($dst$$Register, $src1$$Register, length, 64 - (rshift + length));
+++ %}
+++ ins_pipe(pipe_class_default);
+++%}
+++
+++// Bitfield Extract: URShiftL + AndL
+++instruct andL_urShiftL_regL_immI_immLpow2minus1(iRegLdst dst, iRegLsrc src1, immI src2, immLpow2minus1 src3) %{
+++ match(Set dst (AndL (URShiftL src1 src2) src3));
+++
+++ format %{ "EXTRDI $dst, $src1, shift=$src2, mask=$src3 \t// long bitfield extract" %}
+++ size(4);
+++ ins_encode %{
+++ // TODO: PPC port $archOpcode(ppc64Opcode_rldicl);
+++ int rshift = ($src2$$constant) & 0x3f;
+++ int length = log2_long(((jlong) $src3$$constant) + 1);
+++ if (rshift + length > 64) {
+++ // if necessary, adjust mask to omit rotated bits.
+++ length = 64 - rshift;
+++ }
+++ __ extrdi($dst$$Register, $src1$$Register, length, 64 - (rshift + length));
+++ %}
+++ ins_pipe(pipe_class_default);
+++%}
+++
++ instruct sxtI_reg(iRegIdst dst, iRegIsrc src) %{
++ match(Set dst (ConvL2I (ConvI2L src)));
++
++
--- /dev/null
--- /dev/null
++# DP: Allow to overwrite CC/CXX from the environment
++--- a/hotspot/make/linux/makefiles/gcc.make
+++++ b/hotspot/make/linux/makefiles/gcc.make
++@@ -39,7 +39,7 @@ ifeq ($(SPEC),)
++ ifeq ($(USE_CLANG), true)
++ CXX = clang++
++ CC = clang
++- else
+++ else ifeq ($(CXX),)
++ CXX = g++
++ CC = gcc
++ endif
--- /dev/null
--- /dev/null
++# DP: Build Hotspot with -Wno-error=format (not warning free on ppc64el).
++
++--- a/hotspot/make/solaris/makefiles/gcc.make
+++++ b/hotspot/make/solaris/makefiles/gcc.make
++@@ -116,7 +116,7 @@ endif
++
++
++ # Compiler warnings are treated as errors
++-WARNINGS_ARE_ERRORS = -Werror
+++WARNINGS_ARE_ERRORS = -Werror -Wno-error=format
++ # Enable these warnings. See 'info gcc' about details on these options
++ WARNING_FLAGS = -Wpointer-arith -Wconversion -Wsign-compare -Wundef
++ CFLAGS_WARN/DEFAULT = $(WARNINGS_ARE_ERRORS) $(WARNING_FLAGS)
++--- a/hotspot/make/linux/makefiles/gcc.make
+++++ b/hotspot/make/linux/makefiles/gcc.make
++@@ -201,7 +201,7 @@ else
++ endif
++
++ # Compiler warnings are treated as errors
++-WARNINGS_ARE_ERRORS = -Werror
+++WARNINGS_ARE_ERRORS = -Werror -Wno-error=format -Wno-error=deprecated
++
++ ifeq ($(USE_CLANG), true)
++ # However we need to clean the code up before we can unrestrictedly enable this option with Clang
--- /dev/null
--- /dev/null
++Description: Allow loading of ICC profiles when jre/lib/cmm is a
++ symlink by disabling call to isChildOf(f, dir) in getStandardProfileFile
++ and getProfileFile methods.
++ .
++ isChildOf method try to ensures f.getCanonicalPath start with
++ dir.getCanonicalPath but, on openjdk-6, dir.getCanonicalPath
++ will resolve to realpath and so won't match.
++ .
++ It should fix "Cannot open file sRGB.pf" errors.
++Author: Damien Raude-Morvan <drazzib@debian.org>
++Last-Update: 2012-05-18
++Bug-Debian: http://bugs.debian.org/641530
++Forwarded: not-yet
++
++--- a/jdk/src/share/classes/java/awt/color/ICC_Profile.java
+++++ b/jdk/src/share/classes/java/awt/color/ICC_Profile.java
++@@ -1833,9 +1833,6 @@ public class ICC_Profile implements Seri
++ dir = st.nextToken();
++ fullPath = dir + File.separatorChar + fileName;
++ f = new File(fullPath);
++- if (!isChildOf(f, dir)) {
++- f = null;
++- }
++ }
++ }
++
++@@ -1872,7 +1869,7 @@ public class ICC_Profile implements Seri
++ File.separatorChar + "lib" + File.separatorChar + "cmm";
++ String fullPath = dir + File.separatorChar + fileName;
++ File f = new File(fullPath);
++- return (f.isFile() && isChildOf(f, dir)) ? f : null;
+++ return (f.isFile()) ? f : null;
++ }
++
++ /**
--- /dev/null
--- /dev/null
++--- a/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java
+++++ b/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java
++@@ -1220,6 +1220,7 @@ class XWindowPeer extends XPanelPeer imp
++
++ boolean isOverrideRedirect() {
++ return XWM.getWMID() == XWM.OPENLOOK_WM ||
+++ XWM.getWMID() == XWM.COMPIZ_WM ||
++ Window.Type.POPUP.equals(getWindowType());
++ }
++
--- /dev/null
--- /dev/null
++--- a/icedtea-sound/Makefile.am
+++++ b/icedtea-sound/Makefile.am
++@@ -143,7 +143,7 @@
++ touch $@
++
++ $(ICEDTEA_SOUND_NATIVE_BUILDDIR)/%.o: $(ICEDTEA_SOUND_NATIVE_SRCDIR)/%.c stamps/icedtea-sound-headers.stamp
++- $(CC) $(IT_CFLAGS) -fPIC -I$(SYSTEM_JDK_DIR)/include/linux -I$(SYSTEM_JDK_DIR)/include \
+++ $(CC) $(IT_CFLAGS) -fPIC -I$(SYSTEM_JDK_DIR)/include/linux -I$(SYSTEM_JDK_DIR)/include/bsd -I$(SYSTEM_JDK_DIR)/include \
++ -I$(ICEDTEA_SOUND_NATIVE_BUILDDIR) -o $@ -c $<
++
++ $(ICEDTEA_SOUND_NATIVE_BUILDDIR)/$(TARGET_NAME): $(ICEDTEA_SOUND_NATIVE_OBJECTS)
++--- a/icedtea-sound/Makefile.in
+++++ b/icedtea-sound/Makefile.in
++@@ -721,7 +721,7 @@
++ touch $@
++
++ $(ICEDTEA_SOUND_NATIVE_BUILDDIR)/%.o: $(ICEDTEA_SOUND_NATIVE_SRCDIR)/%.c stamps/icedtea-sound-headers.stamp
++- $(CC) $(IT_CFLAGS) -fPIC -I$(SYSTEM_JDK_DIR)/include/linux -I$(SYSTEM_JDK_DIR)/include \
+++ $(CC) $(IT_CFLAGS) -fPIC -I$(SYSTEM_JDK_DIR)/include/linux -I$(SYSTEM_JDK_DIR)/include/bsd -I$(SYSTEM_JDK_DIR)/include \
++ -I$(ICEDTEA_SOUND_NATIVE_BUILDDIR) -o $@ -c $<
++
++ $(ICEDTEA_SOUND_NATIVE_BUILDDIR)/$(TARGET_NAME): $(ICEDTEA_SOUND_NATIVE_OBJECTS)
++--- a/icedtea-sound/acinclude.m4
+++++ b/icedtea-sound/acinclude.m4
++@@ -24,14 +24,12 @@
++ BUILD_ARCH_DIR=amd64
++ INSTALL_ARCH_DIR=amd64
++ JRE_ARCH_DIR=amd64
++- ARCHFLAG="-m64"
++ ;;
++ i?86)
++ BUILD_ARCH_DIR=i586
++ INSTALL_ARCH_DIR=i386
++ JRE_ARCH_DIR=i386
++ ARCH_PREFIX=${LINUX32}
++- ARCHFLAG="-m32"
++ ;;
++ alpha*)
++ BUILD_ARCH_DIR=alpha
++@@ -42,13 +40,11 @@
++ BUILD_ARCH_DIR=arm
++ INSTALL_ARCH_DIR=arm
++ JRE_ARCH_DIR=arm
++- ARCHFLAG="-D_LITTLE_ENDIAN"
++ ;;
++ arm64|aarch64)
++ BUILD_ARCH_DIR=aarch64
++ INSTALL_ARCH_DIR=aarch64
++ JRE_ARCH_DIR=aarch64
++- ARCHFLAG="-D_LITTLE_ENDIAN"
++ ;;
++ mips)
++ BUILD_ARCH_DIR=mips
++@@ -65,19 +61,16 @@
++ INSTALL_ARCH_DIR=ppc
++ JRE_ARCH_DIR=ppc
++ ARCH_PREFIX=${LINUX32}
++- ARCHFLAG="-m32"
++ ;;
++ powerpc64)
++ BUILD_ARCH_DIR=ppc64
++ INSTALL_ARCH_DIR=ppc64
++ JRE_ARCH_DIR=ppc64
++- ARCHFLAG="-m64"
++ ;;
++ powerpc64le)
++ BUILD_ARCH_DIR=ppc64
++ INSTALL_ARCH_DIR=ppc64
++ JRE_ARCH_DIR=ppc64
++- ARCHFLAG="-m64"
++ ;;
++ sparc)
++ BUILD_ARCH_DIR=sparc
++@@ -85,27 +78,23 @@
++ JRE_ARCH_DIR=sparc
++ CROSS_TARGET_ARCH=sparc
++ ARCH_PREFIX=${LINUX32}
++- ARCHFLAG="-m32"
++ ;;
++ sparc64)
++ BUILD_ARCH_DIR=sparcv9
++ INSTALL_ARCH_DIR=sparcv9
++ JRE_ARCH_DIR=sparc64
++- ARCHFLAG="-m64"
++ ;;
++ s390)
++ BUILD_ARCH_DIR=s390
++ INSTALL_ARCH_DIR=s390
++ JRE_ARCH_DIR=s390
++ ARCH_PREFIX=${LINUX32}
++- ARCHFLAG="-m31"
++ ;;
++ s390x)
++ BUILD_ARCH_DIR=s390x
++ INSTALL_ARCH_DIR=s390x
++ JRE_ARCH_DIR=s390x
++ CROSS_TARGET_ARCH=s390x
++- ARCHFLAG="-m64"
++ ;;
++ sh*)
++ BUILD_ARCH_DIR=sh
++--- a/icedtea-sound/configure
+++++ b/icedtea-sound/configure
++@@ -3719,14 +3719,12 @@
++ BUILD_ARCH_DIR=amd64
++ INSTALL_ARCH_DIR=amd64
++ JRE_ARCH_DIR=amd64
++- ARCHFLAG="-m64"
++ ;;
++ i?86)
++ BUILD_ARCH_DIR=i586
++ INSTALL_ARCH_DIR=i386
++ JRE_ARCH_DIR=i386
++ ARCH_PREFIX=${LINUX32}
++- ARCHFLAG="-m32"
++ ;;
++ alpha*)
++ BUILD_ARCH_DIR=alpha
++@@ -3737,13 +3735,11 @@
++ BUILD_ARCH_DIR=arm
++ INSTALL_ARCH_DIR=arm
++ JRE_ARCH_DIR=arm
++- ARCHFLAG="-D_LITTLE_ENDIAN"
++ ;;
++ arm64|aarch64)
++ BUILD_ARCH_DIR=aarch64
++ INSTALL_ARCH_DIR=aarch64
++ JRE_ARCH_DIR=aarch64
++- ARCHFLAG="-D_LITTLE_ENDIAN"
++ ;;
++ mips)
++ BUILD_ARCH_DIR=mips
++@@ -3760,19 +3756,16 @@
++ INSTALL_ARCH_DIR=ppc
++ JRE_ARCH_DIR=ppc
++ ARCH_PREFIX=${LINUX32}
++- ARCHFLAG="-m32"
++ ;;
++ powerpc64)
++ BUILD_ARCH_DIR=ppc64
++ INSTALL_ARCH_DIR=ppc64
++ JRE_ARCH_DIR=ppc64
++- ARCHFLAG="-m64"
++ ;;
++ powerpc64le)
++ BUILD_ARCH_DIR=ppc64
++ INSTALL_ARCH_DIR=ppc64
++ JRE_ARCH_DIR=ppc64
++- ARCHFLAG="-m64"
++ ;;
++ sparc)
++ BUILD_ARCH_DIR=sparc
++@@ -3780,27 +3773,23 @@
++ JRE_ARCH_DIR=sparc
++ CROSS_TARGET_ARCH=sparc
++ ARCH_PREFIX=${LINUX32}
++- ARCHFLAG="-m32"
++ ;;
++ sparc64)
++ BUILD_ARCH_DIR=sparcv9
++ INSTALL_ARCH_DIR=sparcv9
++ JRE_ARCH_DIR=sparc64
++- ARCHFLAG="-m64"
++ ;;
++ s390)
++ BUILD_ARCH_DIR=s390
++ INSTALL_ARCH_DIR=s390
++ JRE_ARCH_DIR=s390
++ ARCH_PREFIX=${LINUX32}
++- ARCHFLAG="-m31"
++ ;;
++ s390x)
++ BUILD_ARCH_DIR=s390x
++ INSTALL_ARCH_DIR=s390x
++ JRE_ARCH_DIR=s390x
++ CROSS_TARGET_ARCH=s390x
++- ARCHFLAG="-m64"
++ ;;
++ sh*)
++ BUILD_ARCH_DIR=sh
--- /dev/null
--- /dev/null
++--- jamvm/jamvm/src/classlib/openjdk/jvm.c
+++++ jamvm/jamvm/src/classlib/openjdk/jvm.c
++@@ -517,6 +517,48 @@ jclass JVM_FindClassFromBootLoader(JNIEnv *env, const char *name) {
++ }
++
++
+++/* JVM_FindClassFromCaller
+++ * Find a class from a given class loader. Throws ClassNotFoundException.
+++ * name: name of class
+++ * init: whether initialization is done
+++ * loader: class loader to look up the class.
+++ * This may not be the same as the caller's class loader.
+++ * caller: initiating class. The initiating class may be null when a security
+++ * manager is not installed.
+++ *
+++ * Find a class with this name in this loader,
+++ * using the caller's "protection domain".
+++ */
+++
+++jclass JVM_FindClassFromCaller(JNIEnv *env, const char *name,
+++ jboolean init, jobject loader,
+++ jclass caller) {
+++ Class *class;
+++
+++ TRACE("JVM_FindClassFromCaller(env=%p, name=%s, init=%d, loader=%p,"
+++ " caller=%p)", env, name, init, loader, caller);
+++
+++ /* XXX The caller's protection domain should be used during
+++ the findClassFromClassLoader but there is no specification or
+++ unit-test in OpenJDK documenting the desired effect */
+++
+++ class = findClassFromClassLoader((char *)name, loader);
+++
+++ if(class == NULL) {
+++ Object *excep = exceptionOccurred();
+++ char *dot_name = slash2DotsDup((char*)name);
+++
+++ clearException();
+++ signalChainedException(java_lang_ClassNotFoundException,
+++ dot_name, excep);
+++ sysFree(dot_name);
+++ } else if(init)
+++ initClass(class);
+++
+++ return class;
+++}
+++
+++
++ /* JVM_FindClassFromClassLoader */
++
++ jclass JVM_FindClassFromClassLoader(JNIEnv *env, const char *name,
++@@ -2965,6 +3007,24 @@ void JVM_GetVersionInfo(JNIEnv *env, jvm_version_info *info, size_t info_size) {
++ }
++
++
+++/* JVM_GetTemporaryDirectory
+++ * Return the temporary directory that the VM uses for the attach
+++ * and perf data files.
+++ *
+++ * It is important that this directory is well-known and the
+++ * same for all VM instances. It cannot be affected by configuration
+++ * variables such as java.io.tmpdir.
+++ *
+++ * JamVM do not support the jvmstat framework thus this is left unimplemented.
+++ */
+++
+++jstring JVM_GetTemporaryDirectory(JNIEnv *env) {
+++ UNIMPLEMENTED("JVM_GetTemporaryDirectory");
+++
+++ return 0;
+++}
+++
+++
++ /* JVM_RegisterSignal */
++
++ extern void signalHandler(int sig);
++--- jamvm/jamvm/src/classlib/openjdk/classlib-defs.h
+++++ jamvm/jamvm/src/classlib/openjdk/classlib-defs.h
++@@ -1,5 +1,6 @@
++ /*
++- * Copyright (C) 2011, 2013, 2014 Robert Lougher <rob@jamvm.org.uk>.
+++ * Copyright (C) 2011, 2013, 2014, 2015
+++ * Robert Lougher <rob@jamvm.org.uk>.
++ *
++ * This file is part of JamVM.
++ *
++@@ -23,7 +23,7 @@
++ #define CLASSLIB_CLASS_SPECIAL JTHREAD
++
++ #if OPENJDK_VERSION == 8
++-#define CLASSLIB_CLASS_PAD_SIZE 10*sizeof(Object*)+1*sizeof(int)
+++#define CLASSLIB_CLASS_PAD_SIZE 11*sizeof(Object*)+1*sizeof(int)
++ #elif OPENJDK_VERSION == 7
++ #define CLASSLIB_CLASS_PAD_SIZE 18*sizeof(Object*)+2*sizeof(int)
++ #else
++diff -u -ur a/src/os/linux/mips/callNative.S b/src/os/linux/mips/callNative.S
++--- jamvm/jamvm/src/os/linux/mips/callNative.S
+++++ jamvm/jamvm/src/os/linux/mips/callNative.S
++@@ -157,8 +157,7 @@
++
++ ret_double:
++ #ifdef __mips_hard_float
++- swc1 $f0,0($8)
++- swc1 $f1,4($8)
+++ sdc1 $f0,0($8)
++ addu $8,8
++ j return
++ #endif
--- /dev/null
--- /dev/null
++# patch only used for builds with java-access-bridge support
++
++--- openjdk/jdk/src/share/lib/security/java.security-linux
+++++ openjdk/jdk/src/share/lib/security/java.security-linux
++@@ -149,7 +149,9 @@
++ com.sun.org.apache.xml.internal.security.,\
++ com.sun.org.glassfish.,\
++ org.jcp.xml.dsig.internal.,\
++- oracle.jrockit.jfr.
+++ oracle.jrockit.jfr.,\
+++ org.GNOME.Accessibility.,\
+++ org.GNOME.Bonobo.
++ #
++ # List of comma-separated packages that start with or equal this string
++ # will cause a security exception to be thrown when
--- /dev/null
--- /dev/null
++Description: Sort the enums and the annotations in the package-tree.html files\r
++Author: Emmanuel Bourg <ebourg@apache.org>\r
++Forwarded: no\r
++--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java
+++++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java
++@@ -161,6 +161,15 @@ public class ClassTree {
++ for (Iterator<List<ClassDoc>> it = subclasses.values().iterator(); it.hasNext(); ) {
++ Collections.sort(it.next());
++ }
+++
+++ Collections.sort(baseEnums);
+++ for (Iterator<List<ClassDoc>> it = subEnums.values().iterator(); it.hasNext(); ) {
+++ Collections.sort(it.next());
+++ }
+++ Collections.sort(baseAnnotationTypes);
+++ for (Iterator<List<ClassDoc>> it = subAnnotationTypes.values().iterator(); it.hasNext(); ) {
+++ Collections.sort(it.next());
+++ }
++ }
++
++ /**
--- /dev/null
--- /dev/null
++--- a/jdk/src/share/classes/sun/awt/shell/ShellFolder.java
+++++ b/jdk/src/share/classes/sun/awt/shell/ShellFolder.java
++@@ -30,6 +30,10 @@ import java.awt.Image;
++ import java.awt.Toolkit;
++ import java.io.*;
++ import java.io.FileNotFoundException;
+++import java.nio.file.Files;
+++import java.nio.file.LinkOption;
+++import java.nio.file.Path;
+++import java.nio.file.Paths;
++ import java.util.*;
++ import java.util.concurrent.Callable;
++
++@@ -240,10 +244,11 @@ public abstract class ShellFolder extend
++ * @exception FileNotFoundException if file does not exist
++ */
++ public static ShellFolder getShellFolder(File file) throws FileNotFoundException {
+++ Path path = Paths.get(file.getPath());
++ if (file instanceof ShellFolder) {
++ return (ShellFolder)file;
++ }
++- if (!file.exists()) {
+++ if (!Files.exists(path, LinkOption.NOFOLLOW_LINKS)) {
++ throw new FileNotFoundException();
++ }
++ return shellFolderManager.createShellFolder(file);
--- /dev/null
--- /dev/null
++# DP: Debian issue #834053, adjust size for derived fonts.
++# not yet forwarded.
++
++--- src/jdk/src/share/classes/java/awt/Font.java
+++++ src/jdk/src/share/classes/java/awt/Font.java
++@@ -1864,7 +1864,7 @@
++ */
++ public Font deriveFont(int style, float size){
++ if (values == null) {
++- return new Font(name, style, size, createdFont, font2DHandle);
+++ return new Font(name, style, pointSize, createdFont, font2DHandle);
++ }
++ AttributeValues newValues = getAttributeValues().clone();
++ int oldStyle = (this.style != style) ? this.style : -1;
--- /dev/null
--- /dev/null
++--- a/jdk/src/share/classes/javax/swing/JTree.java
+++++ b/jdk/src/share/classes/javax/swing/JTree.java
++@@ -4969,7 +4969,7 @@ public class JTree extends JComponent im
++ public AccessibleSelection getAccessibleSelection() {
++ AccessibleContext ac = getCurrentAccessibleContext();
++ if (ac != null && isLeaf) {
++- return getCurrentAccessibleContext().getAccessibleSelection();
+++ return ac.getAccessibleSelection();
++ } else {
++ return this;
++ }
++@@ -4984,7 +4984,7 @@ public class JTree extends JComponent im
++ public AccessibleText getAccessibleText() {
++ AccessibleContext ac = getCurrentAccessibleContext();
++ if (ac != null) {
++- return getCurrentAccessibleContext().getAccessibleText();
+++ return ac.getAccessibleText();
++ } else {
++ return null;
++ }
++@@ -4999,7 +4999,7 @@ public class JTree extends JComponent im
++ public AccessibleValue getAccessibleValue() {
++ AccessibleContext ac = getCurrentAccessibleContext();
++ if (ac != null) {
++- return getCurrentAccessibleContext().getAccessibleValue();
+++ return ac.getAccessibleValue();
++ } else {
++ return null;
++ }
++--- a/jdk/src/share/classes/javax/swing/table/JTableHeader.java
+++++ b/jdk/src/share/classes/javax/swing/table/JTableHeader.java
++@@ -1088,7 +1088,12 @@ public class JTableHeader extends JCompo
++ }
++
++ public AccessibleAction getAccessibleAction() {
++- return getCurrentAccessibleContext().getAccessibleAction();
+++ AccessibleContext ac = getCurrentAccessibleContext();
+++ if (ac != null) {
+++ return ac.getAccessibleAction();
+++ } else {
+++ return null;
+++ }
++ }
++
++ /**
++@@ -1104,15 +1109,30 @@ public class JTableHeader extends JCompo
++ }
++
++ public AccessibleSelection getAccessibleSelection() {
++- return getCurrentAccessibleContext().getAccessibleSelection();
+++ AccessibleContext ac = getCurrentAccessibleContext();
+++ if (ac != null) {
+++ return ac.getAccessibleSelection();
+++ } else {
+++ return null;
+++ }
++ }
++
++ public AccessibleText getAccessibleText() {
++- return getCurrentAccessibleContext().getAccessibleText();
+++ AccessibleContext ac = getCurrentAccessibleContext();
+++ if (ac != null) {
+++ return ac.getAccessibleText();
+++ } else {
+++ return null;
+++ }
++ }
++
++ public AccessibleValue getAccessibleValue() {
++- return getCurrentAccessibleContext().getAccessibleValue();
+++ AccessibleContext ac = getCurrentAccessibleContext();
+++ if (ac != null) {
+++ return ac.getAccessibleValue();
+++ } else {
+++ return null;
+++ }
++ }
++
++
++--- a/jdk/src/share/classes/javax/swing/JTable.java
+++++ b/jdk/src/share/classes/javax/swing/JTable.java
++@@ -8224,7 +8224,12 @@ public class JTable extends JComponent i
++ * @return the <code>AccessibleAction</code>, or <code>null</code>
++ */
++ public AccessibleAction getAccessibleAction() {
++- return getCurrentAccessibleContext().getAccessibleAction();
+++ AccessibleContext ac = getCurrentAccessibleContext();
+++ if (ac != null) {
+++ return ac.getAccessibleAction();
+++ } else {
+++ return null;
+++ }
++ }
++
++ /**
++@@ -8246,7 +8251,12 @@ public class JTable extends JComponent i
++ * <code>null</code>
++ */
++ public AccessibleSelection getAccessibleSelection() {
++- return getCurrentAccessibleContext().getAccessibleSelection();
+++ AccessibleContext ac = getCurrentAccessibleContext();
+++ if (ac != null) {
+++ return ac.getAccessibleSelection();
+++ } else {
+++ return null;
+++ }
++ }
++
++ /**
++@@ -8256,7 +8266,12 @@ public class JTable extends JComponent i
++ * @return the <code>AccessibleText</code>, or <code>null</code>
++ */
++ public AccessibleText getAccessibleText() {
++- return getCurrentAccessibleContext().getAccessibleText();
+++ AccessibleContext ac = getCurrentAccessibleContext();
+++ if (ac != null) {
+++ return ac.getAccessibleText();
+++ } else {
+++ return null;
+++ }
++ }
++
++ /**
++@@ -8266,7 +8281,12 @@ public class JTable extends JComponent i
++ * @return the <code>AccessibleValue</code>, or <code>null</code>
++ */
++ public AccessibleValue getAccessibleValue() {
++- return getCurrentAccessibleContext().getAccessibleValue();
+++ AccessibleContext ac = getCurrentAccessibleContext();
+++ if (ac != null) {
+++ return ac.getAccessibleValue();
+++ } else {
+++ return null;
+++ }
++ }
++
++
++@@ -9025,7 +9045,12 @@ public class JTable extends JComponent i
++ * @return the <code>AccessibleAction</code>, or <code>null</code>
++ */
++ public AccessibleAction getAccessibleAction() {
++- return getCurrentAccessibleContext().getAccessibleAction();
+++ AccessibleContext ac = getCurrentAccessibleContext();
+++ if (ac != null) {
+++ return ac.getAccessibleAction();
+++ } else {
+++ return null;
+++ }
++ }
++
++ /**
++@@ -9047,7 +9072,12 @@ public class JTable extends JComponent i
++ * <code>null</code>
++ */
++ public AccessibleSelection getAccessibleSelection() {
++- return getCurrentAccessibleContext().getAccessibleSelection();
+++ AccessibleContext ac = getCurrentAccessibleContext();
+++ if (ac != null) {
+++ return ac.getAccessibleSelection();
+++ } else {
+++ return null;
+++ }
++ }
++
++ /**
++@@ -9057,7 +9087,12 @@ public class JTable extends JComponent i
++ * @return the <code>AccessibleText</code>, or <code>null</code>
++ */
++ public AccessibleText getAccessibleText() {
++- return getCurrentAccessibleContext().getAccessibleText();
+++ AccessibleContext ac = getCurrentAccessibleContext();
+++ if (ac != null) {
+++ return ac.getAccessibleText();
+++ } else {
+++ return null;
+++ }
++ }
++
++ /**
++@@ -9067,7 +9102,12 @@ public class JTable extends JComponent i
++ * @return the <code>AccessibleValue</code>, or <code>null</code>
++ */
++ public AccessibleValue getAccessibleValue() {
++- return getCurrentAccessibleContext().getAccessibleValue();
+++ AccessibleContext ac = getCurrentAccessibleContext();
+++ if (ac != null) {
+++ return ac.getAccessibleValue();
+++ } else {
+++ return null;
+++ }
++ }
++
++
++--- a/jdk/src/windows/classes/com/sun/java/accessibility/AccessBridge.java
+++++ b/jdk/src/windows/classes/com/sun/java/accessibility/AccessBridge.java
++@@ -6669,7 +6669,7 @@ final public class AccessBridge extends
++ public AccessibleSelection getAccessibleSelection() {
++ AccessibleContext ac = getCurrentAccessibleContext();
++ if (ac != null && isLeaf) {
++- return getCurrentAccessibleContext().getAccessibleSelection();
+++ return ac.getAccessibleSelection();
++ } else {
++ return this;
++ }
++@@ -6684,7 +6684,7 @@ final public class AccessBridge extends
++ public AccessibleText getAccessibleText() {
++ AccessibleContext ac = getCurrentAccessibleContext();
++ if (ac != null) {
++- return getCurrentAccessibleContext().getAccessibleText();
+++ return ac.getAccessibleText();
++ } else {
++ return null;
++ }
++@@ -6699,7 +6699,7 @@ final public class AccessBridge extends
++ public AccessibleValue getAccessibleValue() {
++ AccessibleContext ac = getCurrentAccessibleContext();
++ if (ac != null) {
++- return getCurrentAccessibleContext().getAccessibleValue();
+++ return ac.getAccessibleValue();
++ } else {
++ return null;
++ }
--- /dev/null
--- /dev/null
++--- a/jdk/src/share/classes/sun/awt/resources/awt_pt_BR.properties
+++++ b/jdk/src/share/classes/sun/awt/resources/awt_pt_BR.properties
++@@ -13,7 +13,7 @@ AWT.altGraph=Alt Graph
++ # Key names
++ AWT.enter=Enter
++ AWT.backSpace=Backspace
++-AWT.tab=Guia
+++AWT.tab=Tab
++ AWT.cancel=Cancelar
++ AWT.clear=Limpar
++ AWT.pause=Pausar
--- /dev/null
--- /dev/null
++# HG changeset patch
++# User andrew
++# Date 1502409945 -3600
++# Node ID 64e09337b9b7d253243e6160660e025b7269e04d
++# Parent 0c14af84f624bce3b6eafa8dedc1b4b4e85ab1f9
++8186090: java.nio.Bits.unaligned() doesn't handle aarch64
++Summary: Check for "aarch64" along with other unaligned access supporting architectures.
++Reviewed-by: andrew
++Contributed-by: Derek White <Derek.White@cavium.com>
++
++--- a/jdk/src/share/classes/java/nio/Bits.java
+++++ b/jdk/src/share/classes/java/nio/Bits.java
++@@ -615,7 +615,8 @@ class Bits {
++ new sun.security.action.GetPropertyAction("os.arch"));
++ unaligned = arch.equals("i386") || arch.equals("x86")
++ || arch.equals("amd64") || arch.equals("x86_64")
++- || arch.equals("ppc64") || arch.equals("ppc64le");
+++ || arch.equals("ppc64") || arch.equals("ppc64le")
+++ || arch.equals("aarch64");
++ unalignedKnown = true;
++ return unaligned;
++ }
++--- a/jdk/src/share/classes/sun/security/provider/ByteArrayAccess.java
+++++ b/jdk/src/share/classes/sun/security/provider/ByteArrayAccess.java
++@@ -94,7 +94,8 @@ final class ByteArrayAccess {
++ String arch = java.security.AccessController.doPrivileged
++ (new sun.security.action.GetPropertyAction("os.arch", ""));
++ return arch.equals("i386") || arch.equals("x86") || arch.equals("amd64")
++- || arch.equals("x86_64") || arch.equals("ppc64") || arch.equals("ppc64le");
+++ || arch.equals("x86_64") || arch.equals("ppc64") || arch.equals("ppc64le")
+++ || arch.equals("aarch64");
++ }
++
++ /**
--- /dev/null
--- /dev/null
++
++# HG changeset patch
++# User gromero
++# Date 1481806695 18000
++# Node ID 80927e772b9ac63361e05cd4edb9ce6e71ec9c45
++# Parent 71215ac21d105d3b73f4c7ebae62252f9af8bc6d
++8170153: PPC64/s390x/aarch64: Poor StrictMath performance due to non-optimized compilation
++Reviewed-by: mdoerr, erikj, simonis, aph
++
++--- a/jdk/make/lib/CoreLibraries.gmk
+++++ b/jdk/make/lib/CoreLibraries.gmk
++@@ -41,6 +41,8 @@ ifeq ($(OPENJDK_TARGET_OS), linux)
++ BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
++ else ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
++ BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
+++ else ifeq ($(OPENJDK_TARGET_CPU), aarch64)
+++ BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
++ endif
++ endif
++
++@@ -62,6 +64,7 @@ ifneq ($(OPENJDK_TARGET_OS), macosx)
++ CFLAGS_aix := -qfloat=nomaf, \
++ CFLAGS_linux_ppc64 := -mno-fused-madd -fno-strict-aliasing, \
++ CFLAGS_linux_ppc64le := -ffp-contract=off, \
+++ CFLAGS_linux_aarch64 := -ffp-contract=off, \
++ ARFLAGS := $(ARFLAGS), \
++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \
++ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
--- /dev/null
--- /dev/null
++--- a/jdk/src/share/lib/sound.properties
+++++ b/jdk/src/share/lib/sound.properties
++@@ -37,3 +37,13 @@
++ # Specify the default Receiver by provider and name:
++ # javax.sound.midi.Receiver=com.sun.media.sound.MidiProvider#SunMIDI1
++ #
+++
+++javax.sound.sampled.Clip=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider
+++javax.sound.sampled.Port=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider
+++javax.sound.sampled.SourceDataLine=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider
+++javax.sound.sampled.TargetDataLine=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider
+++
+++#javax.sound.sampled.Clip=com.sun.media.sound.DirectAudioDeviceProvider
+++#javax.sound.sampled.Port=com.sun.media.sound.PortMixerProvider
+++#javax.sound.sampled.SourceDataLine=com.sun.media.sound.DirectAudioDeviceProvider
+++#javax.sound.sampled.TargetDataLine=com.sun.media.sound.DirectAudioDeviceProvider
--- /dev/null
--- /dev/null
++# DP: Define _alpha_ / _sh_ preprocessor macros instead of alpha / sh.
++
++--- a/common/autoconf/flags.m4
+++++ b/common/autoconf/flags.m4
++@@ -566,7 +566,13 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAG
++ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D$OPENJDK_TARGET_OS_UPPERCASE"
++
++ # Setup target CPU
++- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY"
+++ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"'"
+++ case "$OPENJDK_TARGET_CPU_LEGACY" in
+++ alpha*|sh*)
+++ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_${OPENJDK_TARGET_CPU_LEGACY}_";;
+++ *)
+++ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D$OPENJDK_TARGET_CPU_LEGACY"
+++ esac
++
++ # Setup debug/release defines
++ if test "x$DEBUG_LEVEL" = xrelease; then
--- /dev/null
--- /dev/null
++--- a/jdk/src/solaris/bin/jexec.c
+++++ b/jdk/src/solaris/bin/jexec.c
++@@ -168,9 +168,10 @@
++
++ /* Get the path to the java binary, which is in a known position relative
++ * to our current position, which is in argv[0]. */
++- if (getJavaPath(argv[argi++], java, RELATIVE_DEPTH) != 0) {
+++ if (getJavaPath("/@basedir@/jre/lib/jexec", java, RELATIVE_DEPTH) != 0) {
++ errorExit(errno, MISSING_JAVA_MSG);
++ }
+++ argi++;
++ alen = (argc + 2) * (sizeof (const char *));
++ if (alen <= 0 || alen > INT_MAX / sizeof(char *)) {
++ errorExit(errno, BAD_ARG_MSG);
--- /dev/null
--- /dev/null
++Index: b/hotspot/src/os/linux/vm/decoder_linux.cpp
++===================================================================
++--- a/hotspot/src/os/linux/vm/decoder_linux.cpp
+++++ b/hotspot/src/os/linux/vm/decoder_linux.cpp
++@@ -22,6 +22,7 @@
++ *
++ */
++
+++#include "utilities/globalDefinitions.hpp"
++ #include "prims/jvm.h"
++ #include "utilities/decoder_elf.hpp"
++
++Index: b/hotspot/src/os/linux/vm/attachListener_linux.cpp
++===================================================================
++--- a/hotspot/src/os/linux/vm/attachListener_linux.cpp
+++++ b/hotspot/src/os/linux/vm/attachListener_linux.cpp
++@@ -39,6 +39,10 @@
++ #define UNIX_PATH_MAX sizeof(((struct sockaddr_un *)0)->sun_path)
++ #endif
++
+++#if defined(__FreeBSD_kernel__)
+++#include <sys/ucred.h>
+++#endif
+++
++ // The attach mechanism on Linux uses a UNIX domain socket. An attach listener
++ // thread is created at startup or is created on-demand via a signal from
++ // the client tool. The attach listener creates a socket and binds it to a file
++@@ -337,16 +341,26 @@ LinuxAttachOperation* LinuxAttachListene
++
++ // get the credentials of the peer and check the effective uid/guid
++ // - check with jeff on this.
+++#if defined(LOCAL_PEERCRED) /* GNU/kFreeBSD */
+++ struct xucred cred_info;
+++ socklen_t optlen = sizeof(cred_info);
+++ if (::getsockopt(s, SOL_SOCKET, LOCAL_PEERCRED, (void*)&cred_info, &optlen) == -1) {
+++#else
++ struct ucred cred_info;
++ socklen_t optlen = sizeof(cred_info);
++ if (::getsockopt(s, SOL_SOCKET, SO_PEERCRED, (void*)&cred_info, &optlen) == -1) {
+++#endif
++ ::close(s);
++ continue;
++ }
++ uid_t euid = geteuid();
++ gid_t egid = getegid();
++
+++#if defined(LOCAL_PEERCRED) /* GNU/kFreeBSD */
+++ if (cred_info.cr_uid != euid || cred_info.cr_gid != egid) {
+++#else
++ if (cred_info.uid != euid || cred_info.gid != egid) {
+++#endif
++ ::close(s);
++ continue;
++ }
++Index: b/hotspot/src/os/linux/vm/jvm_linux.cpp
++===================================================================
++--- a/hotspot/src/os/linux/vm/jvm_linux.cpp
+++++ b/hotspot/src/os/linux/vm/jvm_linux.cpp
++@@ -169,7 +169,9 @@ struct siglabel siglabels[] = {
++ "WINCH", SIGWINCH, /* Window size change (4.3 BSD, Sun). */
++ "POLL", SIGPOLL, /* Pollable event occurred (System V). */
++ "IO", SIGIO, /* I/O now possible (4.2 BSD). */
+++#ifdef SIGPWR
++ "PWR", SIGPWR, /* Power failure restart (System V). */
+++#endif
++ #ifdef SIGSYS
++ "SYS", SIGSYS /* Bad system call. Only on some Linuxen! */
++ #endif
++Index: b/hotspot/src/os/linux/vm/os_linux.cpp
++===================================================================
++--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++++ b/hotspot/src/os/linux/vm/os_linux.cpp
++@@ -22,6 +22,7 @@
++ *
++ */
++
+++#include "utilities/globalDefinitions.hpp"
++ // no precompiled headers
++ #include "classfile/classLoader.hpp"
++ #include "classfile/systemDictionary.hpp"
++@@ -92,8 +93,16 @@
++ # include <semaphore.h>
++ # include <fcntl.h>
++ # include <string.h>
+++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+++# include <sys/param.h>
+++# include <sys/sysctl.h>
+++#ifndef ETIME
+++# define ETIME ETIMEDOUT
+++#endif
+++#else
++ # include <syscall.h>
++ # include <sys/sysinfo.h>
+++#endif
++ # include <gnu/libc-version.h>
++ # include <sys/ipc.h>
++ # include <sys/shm.h>
++@@ -169,11 +178,22 @@ julong os::available_memory() {
++ }
++
++ julong os::Linux::available_memory() {
+++#ifndef __FreeBSD_kernel__
++ // values in struct sysinfo are "unsigned long"
++ struct sysinfo si;
++ sysinfo(&si);
++
++ return (julong)si.freeram * si.mem_unit;
+++#else
+++ int mib[2] = {CTL_HW, HW_USERMEM}, mem;
+++ size_t len;
+++ len = sizeof(mem);
+++ if (sysctl(mib, 2, &mem, &len, NULL, 0) == 0) {
+++ return (julong) mem;
+++ } else {
+++ return 0;
+++ }
+++#endif
++ }
++
++ julong os::physical_memory() {
++@@ -2174,18 +2194,22 @@ void os::print_memory_info(outputStream*
++ st->print("Memory:");
++ st->print(" %dk page", os::vm_page_size()>>10);
++
+++#ifndef __FreeBSD_kernel__
++ // values in struct sysinfo are "unsigned long"
++ struct sysinfo si;
++ sysinfo(&si);
+++#endif
++
++ st->print(", physical " UINT64_FORMAT "k",
++ os::physical_memory() >> 10);
++ st->print("(" UINT64_FORMAT "k free)",
++ os::available_memory() >> 10);
+++#ifndef __FreeBSD_kernel__
++ st->print(", swap " UINT64_FORMAT "k",
++ ((jlong)si.totalswap * si.mem_unit) >> 10);
++ st->print("(" UINT64_FORMAT "k free)",
++ ((jlong)si.freeswap * si.mem_unit) >> 10);
+++#endif
++ st->cr();
++ }
++
++--- a/hotspot/src/os/linux/vm/os_linux.cpp 2017-07-12 08:27:13.000000000 +0200
+++++ b/hotspot/src/os/linux/vm/os_linux.cpp 2017-07-25 13:13:21.333303596 +0200
++@@ -3422,8 +3422,12 @@
++ return NULL;
++ }
++
+++#ifndef __FreeBSD_kernel__
++ // SHM_REMAP is needed to allow shmat to map over an existing mapping.
++ char* addr = (char*)shmat(shmid, pre_reserved_addr, SHM_REMAP);
+++#else
+++ char* addr = (char*)shmat(shmid, pre_reserved_addr, 0);
+++#endif
++
++ if ((intptr_t)addr == -1) {
++ int err = errno;
++
++Index: b/hotspot/src/os/linux/vm/osThread_linux.cpp
++===================================================================
++--- a/hotspot/src/os/linux/vm/osThread_linux.cpp
+++++ b/hotspot/src/os/linux/vm/osThread_linux.cpp
++@@ -22,6 +22,7 @@
++ *
++ */
++
+++#include "utilities/globalDefinitions.hpp"
++ // no precompiled headers
++ #include "runtime/mutex.hpp"
++ #include "runtime/osThread.hpp"
++Index: b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
++===================================================================
++--- a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
+++++ b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
++@@ -22,6 +22,7 @@
++ *
++ */
++
+++#include "utilities/globalDefinitions.hpp"
++ // no precompiled headers
++ #include "asm/macroAssembler.hpp"
++ #include "classfile/classLoader.hpp"
++@@ -74,6 +75,7 @@
++ # include <ucontext.h>
++ # include <fpu_control.h>
++
+++#ifdef __linux__
++ #ifdef AMD64
++ #define REG_SP REG_RSP
++ #define REG_PC REG_RIP
++@@ -87,6 +89,54 @@
++ #define SPELL_REG_SP "esp"
++ #define SPELL_REG_FP "ebp"
++ #endif // AMD64
+++#endif
+++
+++#if defined(__FreeBSD_kernel__)
+++#define context_trapno uc_mcontext.mc_trapno
+++#ifdef AMD64
+++#define SPELL_REG_SP "rsp"
+++#define SPELL_REG_FP "rbp"
+++#define context_sp uc_mcontext.mc_rsp
+++#define context_pc uc_mcontext.mc_rip
+++#define context_fp uc_mcontext.mc_rbp
+++#define context_rip uc_mcontext.mc_rip
+++#define context_rsp uc_mcontext.mc_rsp
+++#define context_rbp uc_mcontext.mc_rbp
+++#define context_flags uc_mcontext.mc_flags
+++#define context_err uc_mcontext.mc_err
+++#define context_rax uc_mcontext.mc_rax
+++#define context_rbx uc_mcontext.mc_rbx
+++#define context_rcx uc_mcontext.mc_rcx
+++#define context_rdx uc_mcontext.mc_rdx
+++#define context_rsi uc_mcontext.mc_rsi
+++#define context_rdi uc_mcontext.mc_rdi
+++#define context_r8 uc_mcontext.mc_r8
+++#define context_r9 uc_mcontext.mc_r9
+++#define context_r10 uc_mcontext.mc_r10
+++#define context_r11 uc_mcontext.mc_r11
+++#define context_r12 uc_mcontext.mc_r12
+++#define context_r13 uc_mcontext.mc_r13
+++#define context_r14 uc_mcontext.mc_r14
+++#define context_r15 uc_mcontext.mc_r15
+++#else
+++#define SPELL_REG_SP "esp"
+++#define SPELL_REG_FP "ebp"
+++#define context_sp uc_mcontext.mc_esp
+++#define context_pc uc_mcontext.mc_eip
+++#define context_fp uc_mcontext.mc_ebp
+++#define context_eip uc_mcontext.mc_eip
+++#define context_esp uc_mcontext.mc_esp
+++#define context_eax uc_mcontext.mc_eax
+++#define context_ebx uc_mcontext.mc_ebx
+++#define context_ecx uc_mcontext.mc_ecx
+++#define context_edx uc_mcontext.mc_edx
+++#define context_ebp uc_mcontext.mc_ebp
+++#define context_esi uc_mcontext.mc_esi
+++#define context_edi uc_mcontext.mc_edi
+++#define context_eflags uc_mcontext.mc_eflags
+++#define context_trapno uc_mcontext.mc_trapno
+++#endif // AMD64
+++#endif
++
++ PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
++
++@@ -118,15 +168,27 @@ void os::initialize_thread(Thread* thr)
++ }
++
++ address os::Linux::ucontext_get_pc(ucontext_t * uc) {
+++#if defined(__FreeBSD_kernel__)
+++ return (address)uc->context_pc;
+++#else
++ return (address)uc->uc_mcontext.gregs[REG_PC];
+++#endif
++ }
++
++ intptr_t* os::Linux::ucontext_get_sp(ucontext_t * uc) {
+++#if defined(__FreeBSD_kernel__)
+++ return (intptr_t*)uc->context_sp;
+++#else
++ return (intptr_t*)uc->uc_mcontext.gregs[REG_SP];
+++#endif
++ }
++
++ intptr_t* os::Linux::ucontext_get_fp(ucontext_t * uc) {
+++#if defined(__FreeBSD_kernel__)
+++ return (intptr_t*)uc->context_fp;
+++#else
++ return (intptr_t*)uc->uc_mcontext.gregs[REG_FP];
+++#endif
++ }
++
++ // For Forte Analyzer AsyncGetCallTrace profiling support - thread
++@@ -278,7 +340,11 @@ JVM_handle_linux_signal(int sig,
++ pc = (address) os::Linux::ucontext_get_pc(uc);
++
++ if (StubRoutines::is_safefetch_fault(pc)) {
+++#if defined(__FreeBSD_kernel__)
+++ uc->context_pc = intptr_t(StubRoutines::continuation_for_safefetch_fault(pc));
+++#else
++ uc->uc_mcontext.gregs[REG_PC] = intptr_t(StubRoutines::continuation_for_safefetch_fault(pc));
+++#endif
++ return 1;
++ }
++
++@@ -443,7 +509,11 @@ JVM_handle_linux_signal(int sig,
++ // Furthermore, a false-positive should be harmless.
++ if (UnguardOnExecutionViolation > 0 &&
++ (sig == SIGSEGV || sig == SIGBUS) &&
+++#if defined(__FreeBSD_kernel__)
+++ uc->context_trapno == trap_page_fault) {
+++#else
++ uc->uc_mcontext.gregs[REG_TRAPNO] == trap_page_fault) {
+++#endif
++ int page_size = os::vm_page_size();
++ address addr = (address) info->si_addr;
++ address pc = os::Linux::ucontext_get_pc(uc);
++@@ -513,7 +583,11 @@ JVM_handle_linux_signal(int sig,
++ // save all thread context in case we need to restore it
++ if (thread != NULL) thread->set_saved_exception_pc(pc);
++
+++#if defined(__FreeBSD_kernel__)
+++ uc->context_pc = (intptr_t)stub;
+++#else
++ uc->uc_mcontext.gregs[REG_PC] = (greg_t)stub;
+++#endif
++ return true;
++ }
++
++@@ -765,6 +839,7 @@ void os::print_context(outputStream *st,
++
++ ucontext_t *uc = (ucontext_t*)context;
++ st->print_cr("Registers:");
+++#ifdef __linux__
++ #ifdef AMD64
++ st->print( "RAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RAX]);
++ st->print(", RBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RBX]);
++@@ -807,6 +882,48 @@ void os::print_context(outputStream *st,
++ st->print(", EFLAGS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EFL]);
++ st->print(", CR2=" INTPTR_FORMAT, uc->uc_mcontext.cr2);
++ #endif // AMD64
+++#elif defined(__FreeBSD_kernel__)
+++#ifdef AMD64
+++ st->print( "RAX=" INTPTR_FORMAT, uc->context_rax);
+++ st->print(", RBX=" INTPTR_FORMAT, uc->context_rbx);
+++ st->print(", RCX=" INTPTR_FORMAT, uc->context_rcx);
+++ st->print(", RDX=" INTPTR_FORMAT, uc->context_rdx);
+++ st->cr();
+++ st->print( "RSP=" INTPTR_FORMAT, uc->context_rsp);
+++ st->print(", RBP=" INTPTR_FORMAT, uc->context_rbp);
+++ st->print(", RSI=" INTPTR_FORMAT, uc->context_rsi);
+++ st->print(", RDI=" INTPTR_FORMAT, uc->context_rdi);
+++ st->cr();
+++ st->print( "R8 =" INTPTR_FORMAT, uc->context_r8);
+++ st->print(", R9 =" INTPTR_FORMAT, uc->context_r9);
+++ st->print(", R10=" INTPTR_FORMAT, uc->context_r10);
+++ st->print(", R11=" INTPTR_FORMAT, uc->context_r11);
+++ st->cr();
+++ st->print( "R12=" INTPTR_FORMAT, uc->context_r12);
+++ st->print(", R13=" INTPTR_FORMAT, uc->context_r13);
+++ st->print(", R14=" INTPTR_FORMAT, uc->context_r14);
+++ st->print(", R15=" INTPTR_FORMAT, uc->context_r15);
+++ st->cr();
+++ st->print( "RIP=" INTPTR_FORMAT, uc->context_rip);
+++ st->print(", EFLAGS=" INTPTR_FORMAT, uc->context_flags);
+++ st->print(", ERR=" INTPTR_FORMAT, uc->context_err);
+++ st->cr();
+++ st->print(" TRAPNO=" INTPTR_FORMAT, uc->context_trapno);
+++#else
+++ st->print( "EAX=" INTPTR_FORMAT, uc->context_eax);
+++ st->print(", EBX=" INTPTR_FORMAT, uc->context_ebx);
+++ st->print(", ECX=" INTPTR_FORMAT, uc->context_ecx);
+++ st->print(", EDX=" INTPTR_FORMAT, uc->context_edx);
+++ st->cr();
+++ st->print( "ESP=" INTPTR_FORMAT, uc->context_esp);
+++ st->print(", EBP=" INTPTR_FORMAT, uc->context_ebp);
+++ st->print(", ESI=" INTPTR_FORMAT, uc->context_esi);
+++ st->print(", EDI=" INTPTR_FORMAT, uc->context_edi);
+++ st->cr();
+++ st->print( "EIP=" INTPTR_FORMAT, uc->context_eip);
+++ st->print(", EFLAGS=" INTPTR_FORMAT, uc->context_eflags);
+++#endif // AMD64
+++#endif
++ st->cr();
++ st->cr();
++
++@@ -837,6 +954,7 @@ void os::print_register_info(outputStrea
++
++ // this is only for the "general purpose" registers
++
+++#ifdef __linux__
++ #ifdef AMD64
++ st->print("RAX="); print_location(st, uc->uc_mcontext.gregs[REG_RAX]);
++ st->print("RBX="); print_location(st, uc->uc_mcontext.gregs[REG_RBX]);
++@@ -864,6 +982,35 @@ void os::print_register_info(outputStrea
++ st->print("ESI="); print_location(st, uc->uc_mcontext.gregs[REG_ESI]);
++ st->print("EDI="); print_location(st, uc->uc_mcontext.gregs[REG_EDI]);
++ #endif // AMD64
+++#elif defined(__FreeBSD_kernel__)
+++#ifdef AMD64
+++ st->print("RAX="); print_location(st, uc->context_rax);
+++ st->print("RBX="); print_location(st, uc->context_rbx);
+++ st->print("RCX="); print_location(st, uc->context_rcx);
+++ st->print("RDX="); print_location(st, uc->context_rdx);
+++ st->print("RSP="); print_location(st, uc->context_rsp);
+++ st->print("RBP="); print_location(st, uc->context_rbp);
+++ st->print("RSI="); print_location(st, uc->context_rsi);
+++ st->print("RDI="); print_location(st, uc->context_rdi);
+++ st->print("R8 ="); print_location(st, uc->context_r8);
+++ st->print("R9 ="); print_location(st, uc->context_r9);
+++ st->print("R10="); print_location(st, uc->context_r10);
+++ st->print("R11="); print_location(st, uc->context_r11);
+++ st->print("R12="); print_location(st, uc->context_r12);
+++ st->print("R13="); print_location(st, uc->context_r13);
+++ st->print("R14="); print_location(st, uc->context_r14);
+++ st->print("R15="); print_location(st, uc->context_r15);
+++#else
+++ st->print("EAX="); print_location(st, uc->context_eax);
+++ st->print("EBX="); print_location(st, uc->context_ebx);
+++ st->print("ECX="); print_location(st, uc->context_ecx);
+++ st->print("EDX="); print_location(st, uc->context_edx);
+++ st->print("ESP="); print_location(st, uc->context_esp);
+++ st->print("EBP="); print_location(st, uc->context_ebp);
+++ st->print("ESI="); print_location(st, uc->context_esi);
+++ st->print("EDI="); print_location(st, uc->context_edi);
+++#endif // AMD64
+++#endif
++
++ st->cr();
++ }
++Index: b/hotspot/src/share/vm/memory/allocation.hpp
++===================================================================
++--- a/hotspot/src/share/vm/memory/allocation.hpp
+++++ b/hotspot/src/share/vm/memory/allocation.hpp
++@@ -25,8 +25,8 @@
++ #ifndef SHARE_VM_MEMORY_ALLOCATION_HPP
++ #define SHARE_VM_MEMORY_ALLOCATION_HPP
++
++-#include "runtime/globals.hpp"
++ #include "utilities/globalDefinitions.hpp"
+++#include "runtime/globals.hpp"
++ #include "utilities/macros.hpp"
++ #ifdef COMPILER1
++ #include "c1/c1_globals.hpp"
++Index: b/hotspot/src/share/vm/ci/ciObject.hpp
++===================================================================
++--- a/hotspot/src/share/vm/ci/ciObject.hpp
+++++ b/hotspot/src/share/vm/ci/ciObject.hpp
++@@ -25,6 +25,7 @@
++ #ifndef SHARE_VM_CI_CIOBJECT_HPP
++ #define SHARE_VM_CI_CIOBJECT_HPP
++
+++#include "utilities/globalDefinitions.hpp"
++ #include "ci/ciBaseObject.hpp"
++ #include "ci/ciClassList.hpp"
++ #include "memory/allocation.hpp"
++Index: b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
++===================================================================
++--- a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
+++++ b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
++@@ -22,6 +22,7 @@
++ *
++ */
++
+++#include "utilities/globalDefinitions.hpp"
++ // no precompiled headers
++ #include "classfile/vmSymbols.hpp"
++ #include "gc_interface/collectedHeap.hpp"
++Index: b/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
++===================================================================
++--- a/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
+++++ b/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
++@@ -68,7 +68,7 @@
++ # include <sys/procfs.h>
++ # endif
++
++-#if defined(LINUX) || defined(_ALLBSD_SOURCE)
+++#if defined(LINUX) || defined(_ALLBSD_SOURCE) || defined(__FreeBSD_kernel__)
++ #ifndef __STDC_LIMIT_MACROS
++ #define __STDC_LIMIT_MACROS
++ #endif // __STDC_LIMIT_MACROS
++Index: b/hotspot/make/defs.make
++===================================================================
++--- a/hotspot/make/defs.make
+++++ b/hotspot/make/defs.make
++@@ -179,9 +179,6 @@ endif
++ # Windows should have OS predefined
++ ifeq ($(OS),)
++ OS := $(shell uname -s)
++- ifneq ($(findstring BSD,$(OS)),)
++- OS=bsd
++- endif
++ ifeq ($(OS), Darwin)
++ OS=bsd
++ endif
++@@ -207,6 +204,10 @@ else
++ OSNAME=linux
++ endif
++
+++ifeq ($(OS), GNU/kFreeBSD)
+++ OSNAME=linux
+++endif
+++
++ # Determinations of default make arguments and platform specific settings
++ MAKE_ARGS=
++
++Index: b/hotspot/make/linux/Makefile
++===================================================================
++--- a/hotspot/make/linux/Makefile
+++++ b/hotspot/make/linux/Makefile
++@@ -236,6 +236,9 @@ checks: check_os_version check_j2se_vers
++ SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4%
++ OS_VERSION := $(shell uname -r)
++ EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION))
+++ifeq ($(shell uname -s), GNU/kFreeBSD)
+++EMPTY_IF_NOT_SUPPORTED = supported
+++endif
++
++ check_os_version:
++ ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),)
++Index: b/hotspot/make/linux/makefiles/defs.make
++===================================================================
++--- a/hotspot/make/linux/makefiles/defs.make
+++++ b/hotspot/make/linux/makefiles/defs.make
++@@ -84,7 +84,7 @@ ifneq (,$(findstring $(ARCH), sparc))
++ endif
++
++ # i686/i586 and amd64/x86_64
++-ifneq (,$(findstring $(ARCH), amd64 x86_64 i686 i586))
+++ifneq (,$(findstring $(ARCH), amd64 x86_64 i686 i586 i486 i386))
++ ifeq ($(ARCH_DATA_MODEL), 64)
++ ARCH_DATA_MODEL = 64
++ MAKE_ARGS += LP64=1
++@@ -92,7 +92,7 @@ ifneq (,$(findstring $(ARCH), amd64 x86_
++ VM_PLATFORM = linux_amd64
++ else
++ ARCH_DATA_MODEL = 32
++- PLATFORM = linux-i586
+++ PLATFORM = linux_i486
++ VM_PLATFORM = linux_i486
++ endif
++ HS_ARCH = x86
++Index: b/hotspot/agent/src/os/linux/ps_core.c
++===================================================================
++--- a/hotspot/agent/src/os/linux/ps_core.c
+++++ b/hotspot/agent/src/os/linux/ps_core.c
++@@ -551,11 +551,16 @@ static bool core_handle_prstatus(struct
++ return false;
++
++ // copy regs
+++#if defined(__FreeBSD_kernel__)
+++ memcpy(&newthr->regs, &prstat->pr_reg, sizeof(struct user_regs_struct));
+++#else
++ memcpy(&newthr->regs, prstat->pr_reg, sizeof(struct user_regs_struct));
+++#endif
++
++ if (is_debug()) {
++ print_debug("integer regset\n");
++ #ifdef i386
+++#ifdef __linux__
++ // print the regset
++ print_debug("\teax = 0x%x\n", newthr->regs.eax);
++ print_debug("\tebx = 0x%x\n", newthr->regs.ebx);
++@@ -566,9 +571,21 @@ static bool core_handle_prstatus(struct
++ print_debug("\tesi = 0x%x\n", newthr->regs.esi);
++ print_debug("\tedi = 0x%x\n", newthr->regs.edi);
++ print_debug("\teip = 0x%x\n", newthr->regs.eip);
+++#elif defined(__FreeBSD_kernel__)
+++ print_debug("\teax = 0x%x\n", newthr->regs.r_eax);
+++ print_debug("\tebx = 0x%x\n", newthr->regs.r_ebx);
+++ print_debug("\tecx = 0x%x\n", newthr->regs.r_ecx);
+++ print_debug("\tedx = 0x%x\n", newthr->regs.r_edx);
+++ print_debug("\tesp = 0x%x\n", newthr->regs.r_esp);
+++ print_debug("\tebp = 0x%x\n", newthr->regs.r_ebp);
+++ print_debug("\tesi = 0x%x\n", newthr->regs.r_esi);
+++ print_debug("\tedi = 0x%x\n", newthr->regs.r_edi);
+++ print_debug("\teip = 0x%x\n", newthr->regs.r_eip);
+++#endif
++ #endif
++
++ #if defined(amd64) || defined(x86_64)
+++#ifdef __linux__
++ // print the regset
++ print_debug("\tr15 = 0x%lx\n", newthr->regs.r15);
++ print_debug("\tr14 = 0x%lx\n", newthr->regs.r14);
++@@ -597,6 +614,27 @@ static bool core_handle_prstatus(struct
++ print_debug("\tes = 0x%lx\n", newthr->regs.es);
++ print_debug("\tfs = 0x%lx\n", newthr->regs.fs);
++ print_debug("\tgs = 0x%lx\n", newthr->regs.gs);
+++#elif defined(__FreeBSD_kernel__)
+++ print_debug("\tr15 = 0x%lx\n", newthr->regs.r_r15);
+++ print_debug("\tr14 = 0x%lx\n", newthr->regs.r_r14);
+++ print_debug("\tr13 = 0x%lx\n", newthr->regs.r_r13);
+++ print_debug("\tr12 = 0x%lx\n", newthr->regs.r_r12);
+++ print_debug("\trbp = 0x%lx\n", newthr->regs.r_rbp);
+++ print_debug("\trbx = 0x%lx\n", newthr->regs.r_rbx);
+++ print_debug("\tr11 = 0x%lx\n", newthr->regs.r_r11);
+++ print_debug("\tr10 = 0x%lx\n", newthr->regs.r_r10);
+++ print_debug("\tr9 = 0x%lx\n", newthr->regs.r_r9);
+++ print_debug("\tr8 = 0x%lx\n", newthr->regs.r_r8);
+++ print_debug("\trax = 0x%lx\n", newthr->regs.r_rax);
+++ print_debug("\trcx = 0x%lx\n", newthr->regs.r_rcx);
+++ print_debug("\trdx = 0x%lx\n", newthr->regs.r_rdx);
+++ print_debug("\trsi = 0x%lx\n", newthr->regs.r_rsi);
+++ print_debug("\trdi = 0x%lx\n", newthr->regs.r_rdi);
+++ print_debug("\trip = 0x%lx\n", newthr->regs.r_rip);
+++ print_debug("\tcs = 0x%lx\n", newthr->regs.r_cs);
+++ print_debug("\trsp = 0x%lx\n", newthr->regs.r_rsp);
+++ print_debug("\tss = 0x%lx\n", newthr->regs.r_ss);
+++#endif
++ #endif
++ }
++
++Index: b/hotspot/agent/src/os/linux/ps_proc.c
++===================================================================
++--- a/hotspot/agent/src/os/linux/ps_proc.c
+++++ b/hotspot/agent/src/os/linux/ps_proc.c
++@@ -42,6 +42,22 @@
++ #define __WALL 0x40000000 // Copied from /usr/include/linux/wait.h
++ #endif
++
+++#ifndef PTRACE_PEEKDATA
+++#define PTRACE_PEEKDATA PT_READ_D
+++#endif
+++
+++#ifndef PTRACE_ATTACH
+++#define PTRACE_ATTACH PT_ATTACH
+++#endif
+++
+++#ifndef PTRACE_DETACH
+++#define PTRACE_DETACH PT_DETACH
+++#endif
+++
+++#ifndef PTRACE_CONT
+++#define PTRACE_CONT PT_CONTINUE
+++#endif
+++
++ // This file has the libproc implementation specific to live process
++ // For core files, refer to ps_core.c
++
++@@ -59,7 +75,11 @@ static inline uintptr_t align(uintptr_t
++ // before calling process_read_data.
++
++ static bool process_read_data(struct ps_prochandle* ph, uintptr_t addr, char *buf, size_t size) {
+++#if defined(__FreeBSD_kernel__)
+++ int rslt;
+++#else
++ long rslt;
+++#endif
++ size_t i, words;
++ uintptr_t end_addr = addr + size;
++ uintptr_t aligned_addr = align(addr, sizeof(long));
++@@ -67,36 +87,62 @@ static bool process_read_data(struct ps_
++ if (aligned_addr != addr) {
++ char *ptr = (char *)&rslt;
++ errno = 0;
+++#if defined(__FreeBSD_kernel__)
+++ rslt = ptrace(PTRACE_PEEKDATA, ph->pid, (caddr_t) aligned_addr, 0);
+++#else
++ rslt = ptrace(PTRACE_PEEKDATA, ph->pid, aligned_addr, 0);
+++#endif
++ if (errno) {
++ print_debug("ptrace(PTRACE_PEEKDATA, ..) failed for %d bytes @ %lx\n", size, addr);
++ return false;
++ }
++ for (; aligned_addr != addr; aligned_addr++, ptr++);
+++#if defined(__FreeBSD_kernel__)
+++ for (; ((intptr_t)aligned_addr % sizeof(int)) && aligned_addr < end_addr;
+++#else
++ for (; ((intptr_t)aligned_addr % sizeof(long)) && aligned_addr < end_addr;
+++#endif
++ aligned_addr++)
++ *(buf++) = *(ptr++);
++ }
++
+++#if defined(__FreeBSD_kernel__)
+++ words = (end_addr - aligned_addr) / sizeof(int);
+++#else
++ words = (end_addr - aligned_addr) / sizeof(long);
+++#endif
++
++ // assert((intptr_t)aligned_addr % sizeof(long) == 0);
++ for (i = 0; i < words; i++) {
++ errno = 0;
+++#if defined(__FreeBSD_kernel__)
+++ rslt = ptrace(PTRACE_PEEKDATA, ph->pid, (caddr_t) aligned_addr, 0);
+++#else
++ rslt = ptrace(PTRACE_PEEKDATA, ph->pid, aligned_addr, 0);
+++#endif
++ if (errno) {
++ print_debug("ptrace(PTRACE_PEEKDATA, ..) failed for %d bytes @ %lx\n", size, addr);
++ return false;
++ }
+++#if defined(__FreeBSD_kernel__)
+++ *(int *)buf = rslt;
+++ buf += sizeof(int);
+++ aligned_addr += sizeof(int);
+++#else
++ *(long *)buf = rslt;
++ buf += sizeof(long);
++ aligned_addr += sizeof(long);
+++#endif
++ }
++
++ if (aligned_addr != end_addr) {
++ char *ptr = (char *)&rslt;
++ errno = 0;
+++#if defined(__FreeBSD_kernel__)
+++ rslt = ptrace(PTRACE_PEEKDATA, ph->pid, (caddr_t) aligned_addr, 0);
+++#else
++ rslt = ptrace(PTRACE_PEEKDATA, ph->pid, aligned_addr, 0);
+++#endif
++ if (errno) {
++ print_debug("ptrace(PTRACE_PEEKDATA, ..) failed for %d bytes @ %lx\n", size, addr);
++ return false;
++@@ -135,7 +181,11 @@ static bool process_get_lwp_regs(struct
++ #endif
++
++ #ifdef PTRACE_GETREGS_REQ
+++#if defined(__FreeBSD_kernel__)
+++ if (ptrace_getregs(PTRACE_GETREGS_REQ, pid, (caddr_t) user, 0) < 0) {
+++#else
++ if (ptrace_getregs(PTRACE_GETREGS_REQ, pid, user, NULL) < 0) {
+++#endif
++ print_debug("ptrace(PTRACE_GETREGS, ...) failed for lwp %d\n", pid);
++ return false;
++ }
++@@ -216,7 +266,11 @@ static bool ptrace_waitpid(pid_t pid) {
++
++ // attach to a process/thread specified by "pid"
++ static bool ptrace_attach(pid_t pid, char* err_buf, size_t err_buf_len) {
+++#if defined(__FreeBSD_kernel__)
+++ if (ptrace(PTRACE_ATTACH, pid, NULL, 0) < 0) {
+++#else
++ if (ptrace(PTRACE_ATTACH, pid, NULL, NULL) < 0) {
+++#endif
++ char buf[200];
++ char* msg = strerror_r(errno, buf, sizeof(buf));
++ snprintf(err_buf, err_buf_len, "ptrace(PTRACE_ATTACH, ..) failed for %d: %s", pid, msg);
++@@ -313,7 +367,11 @@ static bool read_lib_info(struct ps_proc
++
++ // detach a given pid
++ static bool ptrace_detach(pid_t pid) {
+++#if defined(__FreeBSD_kernel__)
+++ if (pid && ptrace(PTRACE_DETACH, pid, NULL, 0) < 0) {
+++#else
++ if (pid && ptrace(PTRACE_DETACH, pid, NULL, NULL) < 0) {
+++#endif
++ print_debug("ptrace(PTRACE_DETACH, ..) failed for %d\n", pid);
++ return false;
++ } else {
++Index: b/hotspot/agent/src/os/linux/libproc.h
++===================================================================
++--- a/hotspot/agent/src/os/linux/libproc.h
+++++ b/hotspot/agent/src/os/linux/libproc.h
++@@ -28,6 +28,10 @@
++ #include <jni.h>
++ #include <unistd.h>
++ #include <stdint.h>
+++#if defined(__FreeBSD_kernel__)
+++#include <sys/types.h>
+++#include <machine/reg.h>
+++#endif
++ #include "proc_service.h"
++
++ #ifdef ALT_SASRCDIR
++@@ -73,6 +77,10 @@ combination of ptrace and /proc calls.
++ #define user_regs_struct pt_regs
++ #endif
++
+++#if defined(__FreeBSD_kernel__)
+++#define user_regs_struct reg
+++#endif
+++
++ // This C bool type must be int for compatibility with Linux calls and
++ // it would be a mistake to equivalence it to C++ bool on many platforms
++
++Index: b/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c
++===================================================================
++--- a/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c
+++++ b/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c
++@@ -367,7 +367,7 @@ JNIEXPORT jlongArray JNICALL Java_sun_jv
++
++ #ifdef i386
++ #define REG_INDEX(reg) sun_jvm_hotspot_debugger_x86_X86ThreadContext_##reg
++-
+++#ifdef __linux__
++ regs[REG_INDEX(GS)] = (uintptr_t) gregs.xgs;
++ regs[REG_INDEX(FS)] = (uintptr_t) gregs.xfs;
++ regs[REG_INDEX(ES)] = (uintptr_t) gregs.xes;
++@@ -383,12 +383,28 @@ JNIEXPORT jlongArray JNICALL Java_sun_jv
++ regs[REG_INDEX(PC)] = (uintptr_t) gregs.eip;
++ regs[REG_INDEX(CS)] = (uintptr_t) gregs.xcs;
++ regs[REG_INDEX(SS)] = (uintptr_t) gregs.xss;
++-
+++#elif defined(__FreeBSD_kernel__)
+++ regs[REG_INDEX(GS)] = (uintptr_t) gregs.r_gs;
+++ regs[REG_INDEX(FS)] = (uintptr_t) gregs.r_fs;
+++ regs[REG_INDEX(ES)] = (uintptr_t) gregs.r_es;
+++ regs[REG_INDEX(DS)] = (uintptr_t) gregs.r_ds;
+++ regs[REG_INDEX(EDI)] = (uintptr_t) gregs.r_edi;
+++ regs[REG_INDEX(ESI)] = (uintptr_t) gregs.r_esi;
+++ regs[REG_INDEX(FP)] = (uintptr_t) gregs.r_ebp;
+++ regs[REG_INDEX(SP)] = (uintptr_t) gregs.r_isp;
+++ regs[REG_INDEX(EBX)] = (uintptr_t) gregs.r_ebx;
+++ regs[REG_INDEX(EDX)] = (uintptr_t) gregs.r_edx;
+++ regs[REG_INDEX(ECX)] = (uintptr_t) gregs.r_ecx;
+++ regs[REG_INDEX(EAX)] = (uintptr_t) gregs.r_eax;
+++ regs[REG_INDEX(PC)] = (uintptr_t) gregs.r_eip;
+++ regs[REG_INDEX(CS)] = (uintptr_t) gregs.r_cs;
+++ regs[REG_INDEX(SS)] = (uintptr_t) gregs.r_ss;
+++#endif
++ #endif /* i386 */
++
++ #ifdef amd64
++ #define REG_INDEX(reg) sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_##reg
++-
+++#ifdef __linux__
++ regs[REG_INDEX(R15)] = gregs.r15;
++ regs[REG_INDEX(R14)] = gregs.r14;
++ regs[REG_INDEX(R13)] = gregs.r13;
++@@ -414,7 +430,27 @@ JNIEXPORT jlongArray JNICALL Java_sun_jv
++ regs[REG_INDEX(ES)] = gregs.es;
++ regs[REG_INDEX(FS)] = gregs.fs;
++ regs[REG_INDEX(GS)] = gregs.gs;
++-
+++#elif defined(__FreeBSD_kernel__)
+++ regs[REG_INDEX(R15)] = gregs.r_r15;
+++ regs[REG_INDEX(R14)] = gregs.r_r14;
+++ regs[REG_INDEX(R13)] = gregs.r_r13;
+++ regs[REG_INDEX(R12)] = gregs.r_r12;
+++ regs[REG_INDEX(RBP)] = gregs.r_rbp;
+++ regs[REG_INDEX(RBX)] = gregs.r_rbx;
+++ regs[REG_INDEX(R11)] = gregs.r_r11;
+++ regs[REG_INDEX(R10)] = gregs.r_r10;
+++ regs[REG_INDEX(R9)] = gregs.r_r9;
+++ regs[REG_INDEX(R8)] = gregs.r_r8;
+++ regs[REG_INDEX(RAX)] = gregs.r_rax;
+++ regs[REG_INDEX(RCX)] = gregs.r_rcx;
+++ regs[REG_INDEX(RDX)] = gregs.r_rdx;
+++ regs[REG_INDEX(RSI)] = gregs.r_rsi;
+++ regs[REG_INDEX(RDI)] = gregs.r_rdi;
+++ regs[REG_INDEX(RIP)] = gregs.r_rip;
+++ regs[REG_INDEX(CS)] = gregs.r_cs;
+++ regs[REG_INDEX(RSP)] = gregs.r_rsp;
+++ regs[REG_INDEX(SS)] = gregs.r_ss;
+++#endif
++ #endif /* amd64 */
++
++ #if defined(sparc) || defined(sparcv9)
++Index: b/hotspot/make/linux/makefiles/saproc.make
++===================================================================
++--- a/hotspot/make/linux/makefiles/saproc.make
+++++ b/hotspot/make/linux/makefiles/saproc.make
++@@ -90,6 +90,7 @@ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
++ -I$(GENERATED) \
++ -I$(BOOT_JAVA_HOME)/include \
++ -I$(BOOT_JAVA_HOME)/include/$(Platform_os_family) \
+++ -I$(BOOT_JAVA_HOME)/include/bsd \
++ $(ALT_SAINCDIR) \
++ $(SASRCFILES) \
++ $(SA_LFLAGS) \
--- /dev/null
--- /dev/null
++Description:
++ - Add ifdef TIOCINQ = FIONREAD
++ jamvm/src/classlib/openjdk/jvm.c
++ - Update configure for kfreebsd-amd64
++ jamvm/jamvm/configure.ac
++Author: Damien Raude-Morvan <drazzib@debian.org>
++Last-Update: 2011-08-05
++Forwarded: no
++
++--- a/jamvm/configure.ac
+++++ b/jamvm/configure.ac
++@@ -38,6 +38,7 @@
++ i386-*-freebsd*) host_os=bsd libdl_needed=no ;;
++ i386-*-solaris*) host_cpu=x86 host_os=solaris ;;
++ x86_64-*-linux*) host_os=linux ;;
+++x86_64-*-kfreebsd*) host_os=linux ;;
++ hppa*-*-linux*) host_cpu=parisc host_os=linux ;;
++ mips*-*-linux*) host_cpu=mips host_os=linux ;;
++ x86_64-*-openbsd*) host_os=bsd libdl_needed=no ;;
++--- a/jamvm/configure
+++++ b/jamvm/configure
++@@ -2926,6 +2926,7 @@
++ i386-*-freebsd*) host_os=bsd libdl_needed=no ;;
++ i386-*-solaris*) host_cpu=x86 host_os=solaris ;;
++ x86_64-*-linux*) host_os=linux ;;
+++x86_64-*-kfreebsd*) host_os=linux ;;
++ hppa*-*-linux*) host_cpu=parisc host_os=linux ;;
++ mips*-*-linux*) host_cpu=mips host_os=linux ;;
++ x86_64-*-openbsd*) host_os=bsd libdl_needed=no ;;
++--- a/jamvm/src/classlib/openjdk/jvm.c
+++++ b/jamvm/src/classlib/openjdk/jvm.c
++@@ -63,6 +63,10 @@
++ #define have_monotonic_clock FALSE
++ #endif
++
+++#ifndef TIOCINQ
+++#define TIOCINQ FIONREAD
+++#endif
+++
++ static Class *cloneable_class, *constant_pool_class;
++ static Class *exception_class, *runtime_excp_class;
++
--- /dev/null
--- /dev/null
++Description: Initial GNU/kFreeBSD support for openjdk-8 (JDK part)
++ - Alter build system to consider GNU/kFreeBSD like linux
++ since this port is libc based.
++ openjdk/jdk/make/common/shared/Platform.gmk
++ - ENODATA is undefined :
++ openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java
++ openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java
++ - sendfile implementation :
++ openjdk/jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c
++ (from bsd-port)
++ - BSD network stack usage :
++ openjdk/jdk/src/solaris/native/java/net/*
++ (from bsd-port)
++ - Don't build sctp protocol
++ openjdk/jdk/make/com/sun/nio/Makefile
++ - Don't build jsoundalsa
++ openjdk/jdk/make/javax/sound/Makefile
++ - Disable epoll feature and so LinuxWatchService
++ openjdk/jdk/make/java/nio/Makefile
++Author: Damien Raude-Morvan <drazzib@debian.org>
++Author: Guido Günther <agx@sigxcpu.org>
++Author: Steven Chamberlain <steven@pyro.eu.org>
++Forwarded: no
++
++Index: b/jdk/src/solaris/bin/ergo_i586.c
++===================================================================
++--- a/jdk/src/solaris/bin/ergo_i586.c
+++++ b/jdk/src/solaris/bin/ergo_i586.c
++@@ -106,7 +106,7 @@ ServerClassMachineImpl(void) {
++
++ #endif /* __solaris__ */
++
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++
++ /*
++ * A utility method for asking the CPU about itself.
++Index: b/jdk/src/solaris/bin/jexec.c
++===================================================================
++--- a/jdk/src/solaris/bin/jexec.c
+++++ b/jdk/src/solaris/bin/jexec.c
++@@ -76,7 +76,7 @@
++ #include <string.h>
++ #include <limits.h>
++ #include <errno.h>
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ # include <sys/types.h>
++ # include <sys/stat.h>
++ # include <fcntl.h>
++@@ -92,7 +92,7 @@ static const char * CRAZY_EXEC_MSG = "
++ static const char * MISSING_JAVA_MSG = "can't locate java";
++ static const char * BAD_ARG_MSG = "incorrect number of arguments";
++ static const char * MEM_FAILED_MSG = "memory allocation failed";
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ static const char * BAD_PATHNAME_MSG = "invalid path";
++ static const char * BAD_FILE_MSG = "invalid file";
++ static const char * BAD_MAGIC_MSG = "invalid file (bad magic number)";
++@@ -101,7 +101,7 @@ static const char * UNKNOWN_ERROR = "
++
++ /* Define a constant that represents the number of directories to pop off the
++ * current location to find the java binary */
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ static const int RELATIVE_DEPTH = 2;
++ #else /* Solaris */
++ static const int RELATIVE_DEPTH = 3;
++@@ -114,7 +114,7 @@ static const char * BIN_PATH = "/bin/jav
++ static const char * JAR_FLAG = "-jar";
++
++
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ /* largest possible size for a local file header */
++ static const size_t CHUNK_SIZE = 65535;
++
++@@ -126,7 +126,7 @@ static const ssize_t MIN_SIZE = LOCHDR +
++ int main(int argc, const char * argv[]);
++ void errorExit(int error, const char * message);
++ int getJavaPath(const char * path, char * buf, int depth);
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ const char * isJar(const char * path);
++ #endif
++
++@@ -182,7 +182,7 @@ int main(int argc, const char * argv[])
++ }
++ nargv[nargc++] = java;
++
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ /* The "-jar" flag is already in the original args list on Solaris,
++ * so it only needs to be added on Linux. */
++ nargv[nargc++] = JAR_FLAG;
++@@ -192,7 +192,7 @@ int main(int argc, const char * argv[])
++ const char * jarfile = argv[argi++];
++ const char * message = NULL;
++
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ /* On Linux we also need to make sure argv[1] is really a JAR
++ * file (this will also resolve any symlinks, which helps). */
++ char jarPath[PATH_MAX + 1];
++@@ -301,7 +301,7 @@ int getJavaPath(const char * path, char
++ }
++
++
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ /*
++ * Check if the given file is a JAR file.
++ *
++Index: b/jdk/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c
+++++ b/jdk/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c
++@@ -42,7 +42,7 @@
++ #include <strings.h>
++ #endif
++
++-#if defined(__linux__) || defined(_AIX)
+++#if defined(__linux__) || defined(_AIX) || defined(__GLIBC__)
++ #include <string.h>
++ #endif
++
++Index: b/jdk/src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c
+++++ b/jdk/src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c
++@@ -35,7 +35,7 @@
++ #include <strings.h>
++ #endif
++
++-#if defined(__linux__)
+++#if defined(__linux__) || defined(__GLIBC__)
++ #include <string.h>
++ #endif
++
++Index: b/jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c
+++++ b/jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c
++@@ -41,7 +41,7 @@
++ #include <sys/sendfile.h>
++ #elif defined(_AIX)
++ #include <sys/socket.h>
++-#elif defined(_ALLBSD_SOURCE)
+++#elif defined(_ALLBSD_SOURCE) || defined(__FreeBSD_kernel__)
++ #include <sys/types.h>
++ #include <sys/socket.h>
++ #include <sys/uio.h>
++@@ -216,6 +216,31 @@ Java_sun_nio_ch_FileChannelImpl_transfer
++
++ if (numBytes > 0)
++ return numBytes;
+++
+++ if (result == -1) {
+++ if (errno == EAGAIN)
+++ return IOS_UNAVAILABLE;
+++ if (errno == EOPNOTSUPP || errno == ENOTSOCK || errno == ENOTCONN)
+++ return IOS_UNSUPPORTED_CASE;
+++ if ((errno == EINVAL) && ((ssize_t)count >= 0))
+++ return IOS_UNSUPPORTED_CASE;
+++ if (errno == EINTR)
+++ return IOS_INTERRUPTED;
+++ JNU_ThrowIOExceptionWithLastError(env, "Transfer failed");
+++ return IOS_THROWN;
+++ }
+++
+++ return result;
+++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+++ off_t numBytes;
+++ int result;
+++
+++ numBytes = count;
+++
+++ result = sendfile(srcFD, dstFD, position, count, NULL, &numBytes, 0);
+++
+++ if (numBytes > 0)
+++ return numBytes;
++
++ if (result == -1) {
++ if (errno == EAGAIN)
++Index: b/jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h
++===================================================================
++--- a/jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h
+++++ b/jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h
++@@ -65,9 +65,25 @@ typedef int sctp_freepaddrs_func(void *a
++ typedef int sctp_bindx_func(int sock, void *addrs, int addrcnt, int flags);
++ typedef int sctp_peeloff_func(int sock, sctp_assoc_t id);
++
+++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++
+++#include <stdint.h>
+++#include <sys/types.h>
+++#include <sys/socket.h>
+++#include <netinet/sctp.h>
+++#include <netinet/sctp_peeloff.h>
+++#include <netinet/sctp_uio.h>
+++#include "jni.h"
+++
+++#define nio_sctp_getladdrs sctp_getladdrs
+++#define nio_sctp_freeladdrs sctp_freeladdrs
+++#define nio_sctp_getpaddrs sctp_getpaddrs
+++#define nio_sctp_freepaddrs sctp_freepaddrs
+++#define nio_sctp_bindx sctp_bindx
+++#define nio_sctp_peeloff sctp_peeloff
++
++ #else /* __linux__ */
+++
++ #include <stdint.h>
++ #include <linux/types.h>
++ #include <sys/socket.h>
++@@ -319,9 +335,19 @@ typedef int sctp_freepaddrs_func(struct
++ typedef int sctp_bindx_func(int sd, struct sockaddr *addrs, int addrcnt, int flags);
++ typedef int sctp_peeloff_func(int sock, sctp_assoc_t id);
++
++-
++ #endif /* __linux__ */
++
+++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+++
+++#define nio_sctp_getladdrs sctp_getladdrs
+++#define nio_sctp_freeladdrs sctp_freeladdrs
+++#define nio_sctp_getpaddrs sctp_getpaddrs
+++#define nio_sctp_freepaddrs sctp_freepaddrs
+++#define nio_sctp_bindx sctp_bindx
+++#define nio_sctp_peeloff sctp_peeloff
+++
+++#else
+++
++ sctp_getladdrs_func* nio_sctp_getladdrs;
++ sctp_freeladdrs_func* nio_sctp_freeladdrs;
++ sctp_getpaddrs_func* nio_sctp_getpaddrs;
++@@ -329,6 +355,8 @@ sctp_freepaddrs_func* nio_sctp_freepaddr
++ sctp_bindx_func* nio_sctp_bindx;
++ sctp_peeloff_func* nio_sctp_peeloff;
++
+++#endif
+++
++ jboolean loadSocketExtensionFuncs(JNIEnv* env);
++
++ #endif /* !SUN_NIO_CH_SCTP_H */
++Index: b/jdk/src/solaris/native/sun/nio/ch/sctp/SctpChannelImpl.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/nio/ch/sctp/SctpChannelImpl.c
+++++ b/jdk/src/solaris/native/sun/nio/ch/sctp/SctpChannelImpl.c
++@@ -445,7 +445,7 @@ JNIEXPORT jint JNICALL Java_sun_nio_ch_s
++ } else if (errno == EINTR) {
++ return IOS_INTERRUPTED;
++
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ } else if (errno == ENOTCONN) {
++ /* ENOTCONN when EOF reached */
++ rv = 0;
++Index: b/jdk/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c
+++++ b/jdk/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c
++@@ -35,7 +35,7 @@
++ #include <string.h>
++ #include <errno.h>
++
++-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
+++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
++ #include <netinet/in.h>
++ #endif
++
++@@ -91,7 +91,7 @@ Java_sun_nio_ch_DatagramChannelImpl_disc
++ rv = connect(fd, 0, 0);
++ #endif
++
++-#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(_AIX)
+++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(_AIX) || defined(__GLIBC__)
++ {
++ int len;
++ SOCKADDR sa;
++Index: b/jdk/src/solaris/native/sun/nio/ch/Net.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/nio/ch/Net.c
+++++ b/jdk/src/solaris/native/sun/nio/ch/Net.c
++@@ -273,7 +273,7 @@ Java_sun_nio_ch_Net_socket0(JNIEnv *env,
++ }
++ }
++
++-#if defined(__linux__)
+++#ifdef __linux__
++ if (type == SOCK_DGRAM) {
++ int arg = 0;
++ int level = (domain == AF_INET6) ? IPPROTO_IPV6 : IPPROTO_IP;
++Index: b/jdk/src/solaris/native/sun/nio/ch/NativeThread.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/nio/ch/NativeThread.c
+++++ b/jdk/src/solaris/native/sun/nio/ch/NativeThread.c
++@@ -32,7 +32,7 @@
++ #include "sun_nio_ch_NativeThread.h"
++ #include "nio_util.h"
++
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ #include <pthread.h>
++ #include <sys/signal.h>
++ /* Also defined in net/linux_close.c */
++Index: b/jdk/src/solaris/native/sun/nio/ch/SocketChannelImpl.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/nio/ch/SocketChannelImpl.c
+++++ b/jdk/src/solaris/native/sun/nio/ch/SocketChannelImpl.c
++@@ -31,7 +31,7 @@
++ #include <string.h>
++ #include <poll.h>
++
++-#if __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ #include <netinet/in.h>
++ #endif
++
++Index: b/jdk/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c
+++++ b/jdk/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c
++@@ -28,7 +28,7 @@
++ #include <sys/types.h>
++ #include <sys/socket.h>
++
++-#if __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ #include <netinet/in.h>
++ #endif
++
++Index: b/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c
+++++ b/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c
++@@ -58,6 +58,7 @@ static int preCloseFD = -1; /* File
++ */
++ jboolean loadSocketExtensionFuncs
++ (JNIEnv* env) {
+++#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__)
++ if (dlopen(nativeSctpLib, RTLD_GLOBAL | RTLD_LAZY) == NULL) {
++ JNU_ThrowByName(env, "java/lang/UnsupportedOperationException",
++ dlerror());
++@@ -105,6 +106,7 @@ jboolean loadSocketExtensionFuncs
++ dlerror());
++ return JNI_FALSE;
++ }
+++#endif /* __FreeBSD__ */
++
++ funcsLoaded = JNI_TRUE;
++ return JNI_TRUE;
++Index: b/jdk/src/solaris/native/sun/awt/extutil.h
++===================================================================
++--- a/jdk/src/solaris/native/sun/awt/extutil.h
+++++ b/jdk/src/solaris/native/sun/awt/extutil.h
++@@ -58,7 +58,7 @@ in this Software without prior written a
++ */
++ /* $XFree86: xc/include/extensions/extutil.h,v 1.5 2001/01/17 17:53:20 dawes Exp $ */
++
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++
++ #ifndef _EXTUTIL_H_
++ #define _EXTUTIL_H_
++Index: b/jdk/src/solaris/native/sun/awt/VDrawingArea.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/awt/VDrawingArea.c
+++++ b/jdk/src/solaris/native/sun/awt/VDrawingArea.c
++@@ -33,7 +33,7 @@
++ #include <stdio.h>
++ #include <stdlib.h>
++
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ /* XXX: Shouldn't be necessary. */
++ #include "awt_p.h"
++ #endif /* __linux__ */
++Index: b/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c
+++++ b/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c
++@@ -121,7 +121,8 @@ static char *x11GraphicsConfigClassName
++ */
++
++ #define MAXFRAMEBUFFERS 16
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+++
++ typedef struct {
++ int screen_number;
++ short x_org;
++@@ -440,7 +441,7 @@ getAllConfigs (JNIEnv *env, int screen,
++ RTLD_LAZY | RTLD_GLOBAL);
++ }
++
++-#ifndef __linux__ /* SOLARIS */
+++#if ! defined(__linux__) && ! defined(__GLIBC__) /* SOLARIS */
++ if (xrenderLibHandle == NULL) {
++ xrenderLibHandle = dlopen("/usr/sfw/lib/libXrender.so.1",
++ RTLD_LAZY | RTLD_GLOBAL);
++@@ -584,7 +585,8 @@ getAllConfigs (JNIEnv *env, int screen,
++ }
++
++ #ifndef HEADLESS
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+++
++ static void xinerama_init_linux()
++ {
++ void* libHandle = NULL;
++@@ -635,7 +637,7 @@ static void xinerama_init_linux()
++ }
++ }
++ #endif
++-#if !defined(__linux__) && !defined(MACOSX) /* Solaris */
+++#if !defined(__linux__) && !defined(MACOSX) && !defined(__GLIBC__) /* Solaris */
++ static void xinerama_init_solaris()
++ {
++ void* libHandle = NULL;
++@@ -695,11 +697,11 @@ static void xineramaInit(void) {
++ }
++
++ DTRACE_PRINTLN("Xinerama extension is available");
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ xinerama_init_linux();
++ #else /* Solaris */
++ xinerama_init_solaris();
++-#endif /* __linux__ || MACOSX */
+++#endif /* __linux__ || MACOSX || __GLIBC__ */
++ }
++ #endif /* HEADLESS */
++
++@@ -1597,7 +1599,7 @@ Java_sun_awt_X11GraphicsEnvironment_getX
++ {
++ jobject point = NULL;
++ #ifndef HEADLESS /* return NULL in HEADLESS, Linux */
++-#if !defined(__linux__) && !defined(MACOSX)
+++#if !defined(__linux__) && !defined(MACOSX) && !defined(__GLIBC__)
++ int x,y;
++
++ AWT_LOCK();
++Index: b/jdk/src/solaris/native/sun/awt/awt_Font.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/awt/awt_Font.c
+++++ b/jdk/src/solaris/native/sun/awt/awt_Font.c
++@@ -255,7 +255,7 @@ loadFont(Display * display, char *name,
++ if (strcmp(style, "regular") == 0) {
++ altstyle = "roman";
++ }
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ if (!strcmp(family, "lucidasans")) {
++ family = "lucida";
++ }
++Index: b/jdk/src/solaris/native/sun/awt/awt_InputMethod.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/awt/awt_InputMethod.c
+++++ b/jdk/src/solaris/native/sun/awt/awt_InputMethod.c
++@@ -52,7 +52,7 @@ static void PreeditDrawCallback(XIC, XPo
++ XIMPreeditDrawCallbackStruct *);
++ static void PreeditCaretCallback(XIC, XPointer,
++ XIMPreeditCaretCallbackStruct *);
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ static void StatusStartCallback(XIC, XPointer, XPointer);
++ static void StatusDoneCallback(XIC, XPointer, XPointer);
++ static void StatusDrawCallback(XIC, XPointer,
++@@ -66,7 +66,7 @@ static void StatusDrawCallback(XIC, XPoi
++ #define PreeditDoneIndex 1
++ #define PreeditDrawIndex 2
++ #define PreeditCaretIndex 3
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ #define StatusStartIndex 4
++ #define StatusDoneIndex 5
++ #define StatusDrawIndex 6
++@@ -84,14 +84,14 @@ static XIMProc callback_funcs[NCALLBACKS
++ (XIMProc)PreeditDoneCallback,
++ (XIMProc)PreeditDrawCallback,
++ (XIMProc)PreeditCaretCallback,
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ (XIMProc)StatusStartCallback,
++ (XIMProc)StatusDoneCallback,
++ (XIMProc)StatusDrawCallback,
++ #endif
++ };
++
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ #define MAX_STATUS_LEN 100
++ typedef struct {
++ Window w; /*status window id */
++@@ -124,7 +124,7 @@ typedef struct _X11InputMethodData {
++ XIMCallback *callbacks; /* callback parameters */
++ jobject x11inputmethod; /* global ref to X11InputMethod instance */
++ /* associated with the XIC */
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ StatusWindow *statusWindow; /* our own status window */
++ #endif
++ char *lookup_buf; /* buffer used for XmbLookupString */
++@@ -370,7 +370,7 @@ destroyX11InputMethodData(JNIEnv *env, X
++ static void
++ freeX11InputMethodData(JNIEnv *env, X11InputMethodData *pX11IMData)
++ {
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ if (pX11IMData->statusWindow != NULL){
++ StatusWindow *sw = pX11IMData->statusWindow;
++ XFreeGC(awt_display, sw->lightGC);
++@@ -473,7 +473,7 @@ awt_x11inputmethod_lookupString(XKeyPres
++ pX11IMData = getX11InputMethodData(env, currentX11InputMethodInstance);
++
++ if (pX11IMData == NULL) {
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ return False;
++ #else
++ return result;
++@@ -481,7 +481,7 @@ awt_x11inputmethod_lookupString(XKeyPres
++ }
++
++ if ((ic = pX11IMData->current_ic) == (XIC)0){
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ return False;
++ #else
++ return result;
++@@ -573,7 +573,7 @@ awt_x11inputmethod_lookupString(XKeyPres
++ return result;
++ }
++
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ static StatusWindow *createStatusWindow(
++ Window parent) {
++ StatusWindow *statusWindow;
++@@ -886,7 +886,7 @@ static void adjustStatusWindow(Window sh
++ }
++ }
++ }
++-#endif /* __linux__ || MACOSX */
+++#endif /* __linux__ || MACOSX || __GLIBC__ */
++ /*
++ * Creates two XICs, one for active clients and the other for passive
++ * clients. All information on those XICs are stored in the
++@@ -929,7 +929,7 @@ createXIC(JNIEnv * env, X11InputMethodDa
++ return FALSE ;
++ }
++
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ on_the_spot_styles |= XIMStatusNothing;
++
++ /*kinput does not support XIMPreeditCallbacks and XIMStatusArea
++@@ -942,9 +942,9 @@ createXIC(JNIEnv * env, X11InputMethodDa
++ break;
++ }
++ }
++-#else /*! __linux__ && !MACOSX */
+++#else /*! __linux__ && !MACOSX && !__GLIBC__ */
++ on_the_spot_styles |= XIMStatusNothing;
++-#endif /* __linux__ || MACOSX */
+++#endif /* __linux__ || MACOSX || __GLIBC__ */
++
++ for (i = 0; i < im_styles->count_styles; i++) {
++ active_styles |= im_styles->supported_styles[i] & on_the_spot_styles;
++@@ -998,7 +998,7 @@ createXIC(JNIEnv * env, X11InputMethodDa
++ NULL);
++ if (preedit == (XVaNestedList)NULL)
++ goto err;
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ /*always try XIMStatusCallbacks for active client...*/
++ {
++ status = (XVaNestedList)XVaCreateNestedList(0,
++@@ -1020,7 +1020,7 @@ createXIC(JNIEnv * env, X11InputMethodDa
++ XFree((void *)status);
++ XFree((void *)preedit);
++ }
++-#else /* !__linux__ && !MACOSX */
+++#else /* !__linux__ && !MACOSX && !__GLIBC__ */
++ pX11IMData->ic_active = XCreateIC(X11im,
++ XNClientWindow, w,
++ XNFocusWindow, w,
++@@ -1028,7 +1028,7 @@ createXIC(JNIEnv * env, X11InputMethodDa
++ XNPreeditAttributes, preedit,
++ NULL);
++ XFree((void *)preedit);
++-#endif /* __linux__ || MACOSX */
+++#endif /* __linux__ || MACOSX || __GLIBC__ */
++ } else {
++ pX11IMData->ic_active = XCreateIC(X11im,
++ XNClientWindow, w,
++@@ -1188,7 +1188,7 @@ PreeditCaretCallback(XIC ic, XPointer cl
++
++ }
++
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ static void
++ StatusStartCallback(XIC ic, XPointer client_data, XPointer call_data)
++ {
++@@ -1256,7 +1256,7 @@ StatusDrawCallback(XIC ic, XPointer clie
++ finally:
++ AWT_UNLOCK();
++ }
++-#endif /* __linux__ || MACOSX */
+++#endif /* __linux__ || MACOSX || __GLIBC__ */
++
++ static void CommitStringCallback(XIC ic, XPointer client_data, XPointer call_data) {
++ JNIEnv *env = GetJNIEnv();
++@@ -1353,14 +1353,14 @@ Java_sun_awt_X11_XInputMethod_openXIMNat
++ /* Use IMInstantiate call back only on Linux, as there is a bug in Solaris
++ (4768335)
++ */
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ registered = XRegisterIMInstantiateCallback(dpy, NULL, NULL,
++ NULL, (XIDProc)OpenXIMCallback, NULL);
++ if (!registered) {
++ /* directly call openXIM callback */
++ #endif
++ OpenXIMCallback(dpy, NULL, NULL);
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ }
++ #endif
++
++@@ -1395,9 +1395,9 @@ Java_sun_awt_X11_XInputMethod_createXICN
++
++ globalRef = (*env)->NewGlobalRef(env, this);
++ pX11IMData->x11inputmethod = globalRef;
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ pX11IMData->statusWindow = NULL;
++-#endif /* __linux__ || MACOSX */
+++#endif /* __linux__ || MACOSX || __GLIBC__ */
++
++ pX11IMData->lookup_buf = 0;
++ pX11IMData->lookup_buf_len = 0;
++@@ -1447,14 +1447,14 @@ Java_sun_awt_X11_XInputMethod_setXICFocu
++ setXICFocus(pX11IMData->current_ic, req);
++ currentX11InputMethodInstance = pX11IMData->x11inputmethod;
++ currentFocusWindow = w;
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ if (active && pX11IMData->statusWindow && pX11IMData->statusWindow->on)
++ onoffStatusWindow(pX11IMData, w, True);
++ #endif
++ } else {
++ currentX11InputMethodInstance = NULL;
++ currentFocusWindow = 0;
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ onoffStatusWindow(pX11IMData, 0, False);
++ if (pX11IMData->current_ic != NULL)
++ #endif
++@@ -1471,7 +1471,7 @@ JNIEXPORT void JNICALL
++ Java_sun_awt_X11InputMethod_turnoffStatusWindow(JNIEnv *env,
++ jobject this)
++ {
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ X11InputMethodData *pX11IMData;
++ StatusWindow *statusWindow;
++
++@@ -1639,7 +1639,7 @@ JNIEXPORT jboolean JNICALL Java_sun_awt_
++ JNIEXPORT void JNICALL Java_sun_awt_X11_XInputMethod_adjustStatusWindow
++ (JNIEnv *env, jobject this, jlong window)
++ {
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ AWT_LOCK();
++ adjustStatusWindow(window);
++ AWT_UNLOCK();
++Index: b/jdk/src/solaris/native/sun/awt/fontpath.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/awt/fontpath.c
+++++ b/jdk/src/solaris/native/sun/awt/fontpath.c
++@@ -23,9 +23,9 @@
++ * questions.
++ */
++
++-#if defined(__linux__)
+++#if defined(__linux__) || defined(__GLIBC__)
++ #include <string.h>
++-#endif /* __linux__ */
+++#endif /* __linux__ || __GLIBC__ */
++ #include <stdio.h>
++ #include <stdlib.h>
++ #include <strings.h>
++Index: b/jdk/src/solaris/native/sun/awt/awt_Robot.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/awt/awt_Robot.c
+++++ b/jdk/src/solaris/native/sun/awt/awt_Robot.c
++@@ -45,7 +45,7 @@
++ #include "wsutils.h"
++ #include "list.h"
++ #include "multiVis.h"
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ #include <sys/socket.h>
++ #endif
++
++Index: b/jdk/src/solaris/native/sun/java2d/j2d_md.h
++===================================================================
++--- a/jdk/src/solaris/native/sun/java2d/j2d_md.h
+++++ b/jdk/src/solaris/native/sun/java2d/j2d_md.h
++@@ -30,7 +30,8 @@
++ /*
++ * Linux and MACOSX's version of <sys/types.h> does not define intptr_t
++ */
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+++
++ #include <stdint.h>
++ #endif /* __linux__ || MACOSX */
++
++Index: b/jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c
+++++ b/jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c
++@@ -804,7 +804,7 @@ static AnyFunc* hash_table_vis[HASH_SIZE
++ static int initialized;
++ static int usevis = JNI_TRUE;
++
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++ # define ULTRA_CHIP "sparc64"
++ #else
++ # define ULTRA_CHIP "sun4u"
++Index: b/jdk/src/solaris/native/sun/net/dns/ResolverConfigurationImpl.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/net/dns/ResolverConfigurationImpl.c
+++++ b/jdk/src/solaris/native/sun/net/dns/ResolverConfigurationImpl.c
++@@ -33,7 +33,7 @@
++ #include <strings.h>
++ #endif
++
++-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
+++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
++ #include <string.h>
++ #endif
++
++Index: b/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c
+++++ b/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c
++@@ -32,7 +32,7 @@
++ #include <dlfcn.h>
++ #include <stdio.h>
++ #include <stdlib.h>
++-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
+++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
++ #include <string.h>
++ #else
++ #include <strings.h>
++Index: b/jdk/src/solaris/native/sun/xawt/XToolkit.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/xawt/XToolkit.c
+++++ b/jdk/src/solaris/native/sun/xawt/XToolkit.c
++@@ -27,7 +27,7 @@
++ #include <X11/Xutil.h>
++ #include <X11/Xos.h>
++ #include <X11/Xatom.h>
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ #include <execinfo.h>
++ #endif
++
++@@ -799,7 +799,7 @@ JNIEXPORT jstring JNICALL Java_sun_awt_X
++ return ret;
++ }
++
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ void print_stack(void)
++ {
++ void *array[10];
++Index: b/jdk/src/solaris/native/java/nio/MappedByteBuffer.c
++===================================================================
++--- a/jdk/src/solaris/native/java/nio/MappedByteBuffer.c
+++++ b/jdk/src/solaris/native/java/nio/MappedByteBuffer.c
++@@ -40,7 +40,7 @@ Java_java_nio_MappedByteBuffer_isLoaded0
++ int result = 0;
++ int i = 0;
++ void *a = (void *) jlong_to_ptr(address);
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ unsigned char *vec = (unsigned char *)malloc(numPages * sizeof(char));
++ #else
++ char *vec = (char *)malloc(numPages * sizeof(char));
++Index: b/jdk/src/solaris/native/java/util/TimeZone_md.c
++===================================================================
++--- a/jdk/src/solaris/native/java/util/TimeZone_md.c
+++++ b/jdk/src/solaris/native/java/util/TimeZone_md.c
++@@ -55,7 +55,7 @@
++ #define fileclose fclose
++ #endif
++
++-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
+++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
++ static const char *ETC_TIMEZONE_FILE = "/etc/timezone";
++ static const char *ZONEINFO_DIR = "/usr/share/zoneinfo";
++ static const char *DEFAULT_ZONEINFO_FILE = "/etc/localtime";
++@@ -69,7 +69,7 @@ static const char *DEFAULT_ZONEINFO_FILE
++ static const char *ETC_ENVIRONMENT_FILE = "/etc/environment";
++ #endif
++
++-#if defined(__linux__) || defined(MACOSX) || defined(__solaris__)
+++#if defined(__linux__) || defined(MACOSX) || defined(__solaris__) || defined(__GLIBC__)
++
++ /*
++ * Returns a pointer to the zone ID portion of the given zoneinfo file
++@@ -215,7 +215,7 @@ findZoneinfoFile(char *buf, size_t size,
++ return tz;
++ }
++
++-#if defined(__linux__) || defined(MACOSX)
+++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++
++ /*
++ * Performs Linux specific mapping and returns a zone ID
++@@ -231,7 +231,7 @@ getPlatformTimeZoneID()
++ char *buf;
++ size_t size;
++
++-#if defined(__linux__)
+++#ifdef __linux__ || defined(__GLIBC__)
++ /*
++ * Try reading the /etc/timezone file for Debian distros. There's
++ * no spec of the file format available. This parsing assumes that
++@@ -771,7 +771,7 @@ findJavaTZ_md(const char *java_home_dir)
++ if (*tz == ':') {
++ tz++;
++ }
++-#if defined(__linux__)
+++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
++ /* Ignore "posix/" prefix on Linux. */
++ if (strncmp(tz, "posix/", 6) == 0) {
++ tz += 6;
++Index: b/jdk/src/solaris/native/java/io/io_util_md.c
++===================================================================
++--- a/jdk/src/solaris/native/java/io/io_util_md.c
+++++ b/jdk/src/solaris/native/java/io/io_util_md.c
++@@ -99,7 +99,7 @@ fileOpen(JNIEnv *env, jobject this, jstr
++ WITH_PLATFORM_STRING(env, path, ps) {
++ FD fd;
++
++-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
+++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
++ /* Remove trailing slashes, since the kernel won't */
++ char *p = (char *)ps + strlen(ps) - 1;
++ while ((p > ps) && (*p == '/'))
++Index: b/jdk/src/solaris/native/java/lang/locale_str.h
++===================================================================
++--- a/jdk/src/solaris/native/java/lang/locale_str.h
+++++ b/jdk/src/solaris/native/java/lang/locale_str.h
++@@ -48,7 +48,7 @@
++ "gl", "gl_ES",
++ "he", "iw_IL",
++ "hr", "hr_HR",
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ "hs", "en_US", // used on Linux, not clear what it stands for
++ #endif
++ "hu", "hu_HU",
++@@ -78,14 +78,14 @@
++ "sv", "sv_SE",
++ "th", "th_TH",
++ "tr", "tr_TR",
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ "ua", "en_US", // used on Linux, not clear what it stands for
++ #endif
++ "uk", "uk_UA",
++ "vi", "vi_VN",
++ "wa", "wa_BE",
++ "zh", "zh_CN",
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ "bokmal", "nb_NO",
++ "bokm\xE5l", "nb_NO",
++ "catalan", "ca_ES",
++@@ -146,13 +146,13 @@ static char *language_names[] = {
++ "POSIX", "en",
++ "cz", "cs",
++ "he", "iw",
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ "hs", "en", // used on Linux, not clear what it stands for
++ #endif
++ "id", "in",
++ "sh", "sr", // sh is deprecated
++ "su", "fi",
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ "ua", "en", // used on Linux, not clear what it stands for
++ "catalan", "ca",
++ "croatian", "hr",
++@@ -195,7 +195,7 @@ static char *language_names[] = {
++ * Linux/Solaris script string to Java script name mapping table.
++ */
++ static char *script_names[] = {
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ "cyrillic", "Cyrl",
++ "devanagari", "Deva",
++ "iqtelif", "Latn",
++@@ -208,7 +208,7 @@ static char *script_names[] = {
++ * Linux/Solaris country string to ISO3166 string mapping table.
++ */
++ static char *country_names[] = {
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ "RN", "US", // used on Linux, not clear what it stands for
++ #endif
++ "YU", "CS", // YU has been removed from ISO 3166
++Index: b/jdk/src/solaris/native/java/lang/UNIXProcess_md.c
++===================================================================
++--- a/jdk/src/solaris/native/java/lang/UNIXProcess_md.c
+++++ b/jdk/src/solaris/native/java/lang/UNIXProcess_md.c
++@@ -397,7 +397,7 @@ __attribute_noinline__
++ #ifdef START_CHILD_USE_CLONE
++ static pid_t
++ cloneChild(ChildStuff *c) {
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ #define START_CHILD_CLONE_STACK_SIZE (64 * 1024)
++ /*
++ * See clone(2).
++Index: b/jdk/src/solaris/native/java/lang/java_props_md.c
++===================================================================
++--- a/jdk/src/solaris/native/java/lang/java_props_md.c
+++++ b/jdk/src/solaris/native/java/lang/java_props_md.c
++@@ -23,7 +23,7 @@
++ * questions.
++ */
++
++-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
+++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
++ #include <stdio.h>
++ #include <ctype.h>
++ #endif
++@@ -57,7 +57,7 @@
++ #include "java_props.h"
++
++ #if !defined(_ALLBSD_SOURCE)
++-#ifdef __linux__
+++#ifdef __linux__ || defined(__GLIBC__)
++ #ifndef CODESET
++ #define CODESET _NL_CTYPE_CODESET_NAME
++ #endif
++@@ -151,7 +151,7 @@ static int ParseLocale(JNIEnv* env, int
++ lc = setlocale(cat, NULL);
++ #endif
++
++-#ifndef __linux__
+++#if !defined(__linux__) && !defined(__GLIBC__)
++ if (lc == NULL) {
++ return 0;
++ }
++@@ -331,7 +331,7 @@ static int ParseLocale(JNIEnv* env, int
++ * in order to use optimizations. */
++ *std_encoding = (*p != '\0') ? p : "ISO8859-1";
++
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ /*
++ * Remap the encoding string to a different value for japanese
++ * locales on linux so that customized converters are used instead
++@@ -559,7 +559,7 @@ GetJavaProperties(JNIEnv *env)
++ sprops.unicode_encoding = "UnicodeBig";
++ #endif
++ #else /* !_ALLBSD_SOURCE */
++-#ifdef __linux__
+++#ifdef __linux__ || defined(__GLIBC__)
++ #if __BYTE_ORDER == __LITTLE_ENDIAN
++ sprops.unicode_encoding = "UnicodeLittle";
++ #else
++Index: b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
++===================================================================
++--- a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
+++++ b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
++@@ -39,7 +39,7 @@
++ #define BSD_COMP
++ #endif
++ #endif
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ #include <unistd.h>
++ #include <sys/utsname.h>
++ #include <netinet/ip.h>
++@@ -299,7 +299,7 @@ Java_java_net_PlainDatagramSocketImpl_di
++ /* The fdObj'fd */
++ jint fd;
++
++-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
+++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
++ SOCKADDR addr;
++ int len;
++ #endif
++@@ -309,19 +309,26 @@ Java_java_net_PlainDatagramSocketImpl_di
++ }
++ fd = (*env)->GetIntField(env, fdObj, IO_fd_fdID);
++
++-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
+++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
++ memset(&addr, 0, sizeof(addr));
++ #ifdef AF_INET6
++ if (ipv6_available()) {
++ struct sockaddr_in6 *him6 = (struct sockaddr_in6 *)&addr;
+++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+++ him6->sin6_family = AF_INET6;
+++#else
++ him6->sin6_family = AF_UNSPEC;
+++#endif
++ len = sizeof(struct sockaddr_in6);
++ } else
++ #endif
++ {
++ struct sockaddr_in *him4 = (struct sockaddr_in*)&addr;
+++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++ him4->sin_family = AF_UNSPEC;
+++#else
++ len = sizeof(struct sockaddr_in);
+++#endif
++ }
++ JVM_Connect(fd, (struct sockaddr *)&addr, len);
++
++Index: b/jdk/src/solaris/native/java/net/Inet6AddressImpl.c
++===================================================================
++--- a/jdk/src/solaris/native/java/net/Inet6AddressImpl.c
+++++ b/jdk/src/solaris/native/java/net/Inet6AddressImpl.c
++@@ -75,7 +75,7 @@ Java_java_net_Inet6AddressImpl_getLocalH
++ } else {
++ // ensure null-terminated
++ hostname[NI_MAXHOST] = '\0';
++-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
+++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
++ /* On Linux/FreeBSD gethostname() says "host.domain.sun.com". On
++ * Solaris gethostname() says "host", so extra work is needed.
++ */
++@@ -805,7 +805,7 @@ Java_java_net_Inet6AddressImpl_isReachab
++ case ENETUNREACH: /* Network Unreachable */
++ case EAFNOSUPPORT: /* Address Family not supported */
++ case EADDRNOTAVAIL: /* address is not available on the remote machine */
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ case EINVAL:
++ case EHOSTUNREACH:
++ /*
++Index: b/jdk/src/solaris/native/java/net/Inet4AddressImpl.c
++===================================================================
++--- a/jdk/src/solaris/native/java/net/Inet4AddressImpl.c
+++++ b/jdk/src/solaris/native/java/net/Inet4AddressImpl.c
++@@ -645,7 +645,7 @@ ping4(JNIEnv *env, jint fd, struct socka
++ n = sendto(fd, sendbuf, plen, 0, (struct sockaddr *)him,
++ sizeof(struct sockaddr));
++ if (n < 0 && errno != EINPROGRESS ) {
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ if (errno != EINVAL && errno != EHOSTUNREACH)
++ /*
++ * On some Linux versions, when a socket is bound to the loopback
++@@ -811,7 +811,7 @@ Java_java_net_Inet4AddressImpl_isReachab
++ case ENETUNREACH: /* Network Unreachable */
++ case EAFNOSUPPORT: /* Address Family not supported */
++ case EADDRNOTAVAIL: /* address is not available on the remote machine */
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ case EINVAL:
++ case EHOSTUNREACH:
++ /*
++Index: b/jdk/src/solaris/native/java/net/NetworkInterface.c
++===================================================================
++--- a/jdk/src/solaris/native/java/net/NetworkInterface.c
+++++ b/jdk/src/solaris/native/java/net/NetworkInterface.c
++@@ -63,17 +63,17 @@
++ #define _PATH_PROCNET_IFINET6 "/proc/net/if_inet6"
++ #endif
++
++-#if defined(_ALLBSD_SOURCE)
+++#if defined(_ALLBSD_SOURCE) || defined(__FreeBSD_kernel__)
++ #include <sys/param.h>
++ #include <sys/ioctl.h>
++ #include <sys/sockio.h>
++-#if defined(__APPLE__)
+++#if defined(__APPLE__) || defined(__FreeBSD_kernel__)
++ #include <net/ethernet.h>
++ #include <net/if_var.h>
++ #include <net/if_dl.h>
++ #include <netinet/in_var.h>
++-#include <ifaddrs.h>
++ #endif
+++#include <ifaddrs.h>
++ #endif
++
++ #include "jvm.h"
++@@ -1821,7 +1821,11 @@ static int getMacAddress(JNIEnv *env, in
++ * try the old way.
++ */
++ memset(&lif, 0, sizeof(lif));
+++#if defined(__FreeBSD_kernel__)
+++ strcpy(lif.lifr_name, ifname);
+++#else
++ strlcpy(lif.lifr_name, ifname, sizeof(lif.lifr_name));
+++#endif
++
++ if (ioctl(sock, SIOCGLIFHWADDR, &lif) != -1) {
++ struct sockaddr_dl *sp;
++@@ -1861,7 +1861,7 @@
++
++
++ /** BSD **/
++-#ifdef _ALLBSD_SOURCE
+++#if defined(_ALLBSD_SOURCE) || defined(__FreeBSD_kernel__)
++
++ /*
++ * Opens a socket for further ioct calls. Tries AF_INET socket first and
++@@ -1976,6 +1976,10 @@
++ continue;
++
++ memset(&ifr6, 0, sizeof(ifr6));
+++#if defined(__FreeBSD_kernel__)
+++ strcpy(ifr6.ifr_name, ifa->ifa_name);
+++#else
++ strlcpy(ifr6.ifr_name, ifa->ifa_name, sizeof(ifr6.ifr_name));
+++#endif
++ memcpy(&ifr6.ifr_addr, ifa->ifa_addr,
++ MIN(sizeof(ifr6.ifr_addr), ifa->ifa_addr->sa_len));
++
++Index: b/jdk/src/solaris/native/java/net/net_util_md.c
++===================================================================
++--- a/jdk/src/solaris/native/java/net/net_util_md.c
+++++ b/jdk/src/solaris/native/java/net/net_util_md.c
++@@ -56,6 +56,11 @@
++ #include <net/route.h>
++ #include <sys/utsname.h>
++
+++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+++#include <sys/param.h>
+++#include <sys/sysctl.h>
+++#endif
+++
++ #ifndef IPV6_FLOWINFO_SEND
++ #define IPV6_FLOWINFO_SEND 33
++ #endif
++Index: b/jdk/src/solaris/native/java/net/PlainSocketImpl.c
++===================================================================
++--- a/jdk/src/solaris/native/java/net/PlainSocketImpl.c
+++++ b/jdk/src/solaris/native/java/net/PlainSocketImpl.c
++@@ -32,7 +32,7 @@
++ #endif
++ #include <netinet/tcp.h> /* Defines TCP_NODELAY, needed for 2.6 */
++ #include <netinet/in.h>
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ #include <netinet/ip.h>
++ #endif
++ #include <netdb.h>
++@@ -41,7 +41,7 @@
++ #ifdef __solaris__
++ #include <fcntl.h>
++ #endif
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ #include <unistd.h>
++ #endif
++
++@@ -467,7 +467,7 @@ Java_java_net_PlainSocketImpl_socketConn
++ /* report the appropriate exception */
++ if (connect_rv < 0) {
++
++-#ifdef __linux__
+++#if defined(__linux__) || defined(__GLIBC__)
++ /*
++ * Linux/GNU distribution setup /etc/hosts so that
++ * InetAddress.getLocalHost gets back the loopback address
++Index: b/jdk/src/solaris/native/java/net/net_util_md.h
++===================================================================
++--- a/jdk/src/solaris/native/java/net/net_util_md.h
+++++ b/jdk/src/solaris/native/java/net/net_util_md.h
++@@ -47,7 +47,7 @@
++ close subroutine does not return until the select call returns.
++ ...
++ */
++-#if defined(__linux__) || defined(MACOSX) || defined (_AIX)
+++#if defined(__linux__) || defined(MACOSX) || defined (_AIX) || defined(__GLIBC__)
++ extern int NET_Timeout(int s, long timeout);
++ extern int NET_Read(int s, void* buf, size_t len);
++ extern int NET_RecvFrom(int s, void *buf, int len, unsigned int flags,
++@@ -179,7 +179,7 @@ extern jint NET_Wait(JNIEnv *env, jint f
++ /************************************************************************
++ * Utilities
++ */
++-#ifdef __linux__
+++#if defined(__linux__)
++ extern int kernelIsV24();
++ #endif
++
++Index: b/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java
++===================================================================
++--- a/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java
+++++ b/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java
++@@ -306,7 +306,7 @@ public class FcFontConfiguration extends
++
++ super.setOsNameAndVersion();
++
++- if (!osName.equals("Linux")) {
+++ if (!(osName.equals("Linux") || osName.equals("GNU/kFreeBSD"))) {
++ return;
++ }
++ try {
++Index: b/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java
++===================================================================
++--- a/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java
+++++ b/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java
++@@ -161,6 +161,7 @@ public class UnixPrintServiceLookup exte
++
++ static boolean isBSD() {
++ return (osname.equals("Linux") ||
+++ osname.equals("GNU/kFreeBSD") ||
++ osname.contains("OS X"));
++ }
++
++Index: b/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java
++===================================================================
++--- a/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java
+++++ b/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java
++@@ -102,9 +102,7 @@ class LinuxFileStore
++ LinuxNativeDispatcher.fgetxattr(fd, name, 0L, 0);
++ return true;
++ } catch (UnixException e) {
++- // attribute does not exist
++- if (e.errno() == UnixConstants.ENODATA)
++- return true;
+++ return false;
++ } finally {
++ UnixNativeDispatcher.close(fd);
++ }
++Index: b/jdk/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java
++===================================================================
++--- a/jdk/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java
+++++ b/jdk/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java
++@@ -238,9 +238,6 @@ class LinuxDosFileAttributeView
++ }
++ throw new UnixException("Value of " + DOS_XATTR_NAME + " attribute is invalid");
++ } catch (UnixException x) {
++- // default value when attribute does not exist
++- if (x.errno() == ENODATA)
++- return 0;
++ throw x;
++ } finally {
++ buffer.release();
++Index: b/jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java
++===================================================================
++--- a/jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java
+++++ b/jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java
++@@ -61,6 +61,8 @@ public class DefaultFileSystemProvider {
++ return createProvider("sun.nio.fs.SolarisFileSystemProvider");
++ if (osname.equals("Linux"))
++ return createProvider("sun.nio.fs.LinuxFileSystemProvider");
+++ if (osname.equals("GNU/kFreeBSD"))
+++ return createProvider("sun.nio.fs.BsdFileSystemProvider");
++ if (osname.contains("OS X"))
++ return createProvider("sun.nio.fs.MacOSXFileSystemProvider");
++ if (osname.equals("AIX"))
++Index: b/jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java
++===================================================================
++--- a/jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java
+++++ b/jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java
++@@ -64,7 +64,7 @@ public class DefaultAsynchronousChannelP
++ .doPrivileged(new GetPropertyAction("os.name"));
++ if (osname.equals("SunOS"))
++ return createProvider("sun.nio.ch.SolarisAsynchronousChannelProvider");
++- if (osname.equals("Linux"))
+++ if (osname.equals("Linux") || osname.equals("GNU/kFreeBSD"))
++ return createProvider("sun.nio.ch.LinuxAsynchronousChannelProvider");
++ if (osname.contains("OS X"))
++ return createProvider("sun.nio.ch.BsdAsynchronousChannelProvider");
++Index: b/jdk/src/solaris/classes/sun/awt/X11/XScrollbarPeer.java
++===================================================================
++--- a/jdk/src/solaris/classes/sun/awt/X11/XScrollbarPeer.java
+++++ b/jdk/src/solaris/classes/sun/awt/X11/XScrollbarPeer.java
++@@ -74,7 +74,7 @@ class XScrollbarPeer extends XComponentP
++ * Currently uses hardcoded values
++ */
++ private int getDefaultDimension() {
++- if (System.getProperty("os.name").equals("Linux")) {
+++ if (System.getProperty("os.name").equals("Linux") || System.getProperty("os.name").equals("GNU/kFreeBSD")) {
++ return DEFAULT_WIDTH_LINUX;
++ } else {
++ return DEFAULT_WIDTH_SOLARIS;
++Index: b/jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h
++===================================================================
++--- a/jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h
+++++ b/jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h
++@@ -61,7 +61,7 @@
++ #define log1p jlog1p
++ #define expm1 jexpm1
++
++-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
+++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
++ #define __ieee754_sqrt __j__ieee754_sqrt
++ #define __ieee754_acos __j__ieee754_acos
++ #define __ieee754_log __j__ieee754_log
++Index: b/jdk/src/share/classes/sun/font/FontUtilities.java
++===================================================================
++--- a/jdk/src/share/classes/sun/font/FontUtilities.java
+++++ b/jdk/src/share/classes/sun/font/FontUtilities.java
++@@ -76,7 +76,7 @@ public final class FontUtilities {
++ String osName = System.getProperty("os.name", "unknownOS");
++ isSolaris = osName.startsWith("SunOS");
++
++- isLinux = osName.startsWith("Linux");
+++ isLinux = osName.startsWith("Linux") || osName.equals("GNU/kFreeBSD");
++
++ isMacOSX = osName.contains("OS X"); // TODO: MacOSX
++
++Index: b/jdk/src/share/classes/sun/print/PSPrinterJob.java
++===================================================================
++--- a/jdk/src/share/classes/sun/print/PSPrinterJob.java
+++++ b/jdk/src/share/classes/sun/print/PSPrinterJob.java
++@@ -1587,7 +1587,9 @@ public class PSPrinterJob extends Raster
++ }
++
++ String osname = System.getProperty("os.name");
++- if (osname.equals("Linux") || osname.contains("OS X")) {
+++ if (osname.equals("Linux") ||
+++ osname.equals("GNU/kFreeBSD") ||
+++ osname.contains("OS X")) {
++ execCmd = new String[ncomps];
++ execCmd[n++] = "/usr/bin/lpr";
++ if ((pFlags & PRINTER) != 0) {
++Index: b/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java
++===================================================================
++--- a/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java
+++++ b/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java
++@@ -1306,6 +1306,7 @@ public class ExtendedCharsets
++ String osName = AccessController.doPrivileged(
++ new GetPropertyAction("os.name"));
++ if ("SunOS".equals(osName) || "Linux".equals(osName) || "AIX".equals(osName)
+++ || "GNU/kFreeBSD".equals(osName)
++ || osName.contains("OS X")) {
++ charset("x-COMPOUND_TEXT", "COMPOUND_TEXT",
++ new String[] {
++Index: b/jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java
++===================================================================
++--- a/jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java
+++++ b/jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java
++@@ -49,6 +49,7 @@ public class GSSManagerImpl extends GSSM
++ String osname = System.getProperty("os.name");
++ if (osname.startsWith("SunOS") ||
++ osname.contains("OS X") ||
+++ osname.startsWith("GNU/kFreeBSD") ||
++ osname.startsWith("Linux")) {
++ return new Boolean(System.getProperty
++ (USE_NATIVE_PROP));
++Index: b/jdk/src/solaris/native/sun/net/portconfig.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/net/portconfig.c
+++++ b/jdk/src/solaris/native/sun/net/portconfig.c
++@@ -28,7 +28,7 @@
++ #include <unistd.h>
++ #include <errno.h>
++
++-#if defined(_ALLBSD_SOURCE)
+++#if defined(_ALLBSD_SOURCE) || defined (__FreeBSD_kernel__)
++ #include <sys/sysctl.h>
++ #endif
++
++@@ -67,7 +67,7 @@ static int getPortRange(struct portrange
++ range->lower = net_getParam("/dev/tcp", "tcp_smallest_anon_port");
++ return 0;
++ }
++-#elif defined(_ALLBSD_SOURCE)
+++#elif defined(_ALLBSD_SOURCE) || defined (__FreeBSD_kernel__)
++ {
++ int ret;
++ size_t size = sizeof(range->lower);
++Index: b/jdk/src/solaris/classes/sun/net/PortConfig.java
++===================================================================
++--- a/jdk/src/solaris/classes/sun/net/PortConfig.java
+++++ b/jdk/src/solaris/classes/sun/net/PortConfig.java
++@@ -63,6 +63,9 @@ public final class PortConfig {
++ // /usr/sbin/no -a | fgrep ephemeral
++ defaultLower = 32768;
++ defaultUpper = 65535;
+++ } else if (os.contains("FreeBSD")) {
+++ defaultLower = 10000;
+++ defaultUpper = 65535;
++ } else {
++ throw new InternalError(
++ "sun.net.PortConfig: unknown OS");
++Index: b/jdk/src/share/classes/java/awt/GraphicsEnvironment.java
++===================================================================
++--- a/jdk/src/share/classes/java/awt/GraphicsEnvironment.java
+++++ b/jdk/src/share/classes/java/awt/GraphicsEnvironment.java
++@@ -180,6 +180,7 @@ public abstract class GraphicsEnvironmen
++ ("Linux".equals(osName) ||
++ "SunOS".equals(osName) ||
++ "FreeBSD".equals(osName) ||
+++ "GNU/kFreeBSD".equals(osName) ||
++ "NetBSD".equals(osName) ||
++ "OpenBSD".equals(osName) ||
++ "AIX".equals(osName)) &&
++Index: b/jdk/make/mapfiles/libattach/mapfile-bsd
++===================================================================
++--- /dev/null
+++++ b/jdk/make/mapfiles/libattach/mapfile-bsd
++@@ -0,0 +1,41 @@
+++#
+++# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+++#
+++# This code is free software; you can redistribute it and/or modify it
+++# under the terms of the GNU General Public License version 2 only, as
+++# published by the Free Software Foundation. Oracle designates this
+++# particular file as subject to the "Classpath" exception as provided
+++# by Oracle in the LICENSE file that accompanied this code.
+++#
+++# This code is distributed in the hope that it will be useful, but WITHOUT
+++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+++# version 2 for more details (a copy is included in the LICENSE file that
+++# accompanied this code).
+++#
+++# You should have received a copy of the GNU General Public License version
+++# 2 along with this work; if not, write to the Free Software Foundation,
+++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+++#
+++# Please 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_BsdVirtualMachine_checkPermissions;
+++ Java_sun_tools_attach_BsdVirtualMachine_close;
+++ Java_sun_tools_attach_BsdVirtualMachine_connect;
+++ Java_sun_tools_attach_BsdVirtualMachine_createAttachFile;
+++ Java_sun_tools_attach_BsdVirtualMachine_getTempDir;
+++ Java_sun_tools_attach_BsdVirtualMachine_sendQuitTo;
+++ Java_sun_tools_attach_BsdVirtualMachine_socket;
+++ Java_sun_tools_attach_BsdVirtualMachine_read;
+++ Java_sun_tools_attach_BsdVirtualMachine_write;
+++ local:
+++ *;
+++};
++Index: b/jdk/make/lib/ServiceabilityLibraries.gmk
++===================================================================
++--- a/jdk/make/lib/ServiceabilityLibraries.gmk
+++++ b/jdk/make/lib/ServiceabilityLibraries.gmk
++@@ -34,7 +34,7 @@ endif
++ ifneq ($(OPENJDK_TARGET_OS), linux)
++ LIBATTACH_EXCLUDE_FILES += LinuxVirtualMachine.c
++ endif
++-ifneq ($(OPENJDK_TARGET_OS), macosx)
+++ifeq (,$(findstring $(OPENJDK_TARGET_OS), bsd macosx))
++ LIBATTACH_EXCLUDE_FILES += BsdVirtualMachine.c
++ endif
++ ifneq ($(OPENJDK_TARGET_OS),aix)
++@@ -160,6 +160,7 @@ $(eval $(call SetupNativeCompilation,BUI
++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_SUFFIX_linux := $(LIBDL), \
+++ LDFLAGS_SUFFIX_bsd := $(LIBDL), \
++ LDFLAGS_SUFFIX_solaris := $(LIBDL) -lc, \
++ LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX), \
++ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
++@@ -189,6 +190,7 @@ $(eval $(call SetupNativeCompilation,BUI
++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_SUFFIX_linux := $(LIBDL), \
+++ LDFLAGS_SUFFIX_bsd := $(LIBDL), \
++ LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX) $(LIBDL), \
++ LDFLAGS_SUFFIX_macosx := $(LIBDL), \
++ LDFLAGS_SUFFIX_solaris := -lc, \
++@@ -260,6 +262,7 @@ $(eval $(call SetupNativeCompilation,BUI
++ $(call SET_SHARED_LIBRARY_ORIGIN) \
++ $(LIBINSTRUMENT_LDFLAGS), \
++ LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \
+++ LDFLAGS_bsd := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \
++ LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \
++ LDFLAGS_macosx := -Xlinker -all_load $(JDK_OUTPUTDIR)/objs/libjli_static.a \
++ -framework Cocoa -framework Security -framework ApplicationServices, \
++@@ -267,6 +270,7 @@ $(eval $(call SetupNativeCompilation,BUI
++ LDFLAGS_SUFFIX_macosx := -liconv $(LIBZ), \
++ LDFLAGS_SUFFIX_solaris := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL) -lc, \
++ LDFLAGS_SUFFIX_linux := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL), \
+++ LDFLAGS_SUFFIX_bsd := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL), \
++ LDFLAGS_SUFFIX_aix := $(LIBZ) -L$(JDK_OUTPUTDIR)/objs -ljli_static $(LIBDL),\
++ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
++ RC_FLAGS := $(RC_FLAGS) \
++@@ -379,6 +383,7 @@ $(eval $(call SetupNativeCompilation,BUI
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_windows := wsock32.lib winmm.lib advapi32.lib, \
++ LDFLAGS_SUFFIX_linux := $(LIBDL), \
+++ LDFLAGS_SUFFIX_bsd := $(LIBDL), \
++ LDFLAGS_SUFFIX_macosx := $(LIBDL), \
++ LDFLAGS_SUFFIX_solaris := -lsocket -lnsl $(LIBDL) -lc, \
++ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
++Index: b/jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider
++===================================================================
++--- a/jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider
+++++ b/jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider
++@@ -31,4 +31,5 @@
++ #[windows]sun.tools.attach.WindowsAttachProvider
++ #[linux]sun.tools.attach.LinuxAttachProvider
++ #[macosx]sun.tools.attach.BsdAttachProvider
+++#[bsd]sun.tools.attach.BsdAttachProvider
++ #[aix]sun.tools.attach.AixAttachProvider
++Index: b/jdk/make/CompileJavaClasses.gmk
++===================================================================
++--- a/jdk/make/CompileJavaClasses.gmk
+++++ b/jdk/make/CompileJavaClasses.gmk
++@@ -135,16 +135,22 @@ ifneq ($(OPENJDK_TARGET_OS), linux)
++ endif
++
++ ifneq ($(OPENJDK_TARGET_OS), macosx)
+++ EXFILES += sun/nio/fs/MacOSXFileSystemProvider.java \
+++ sun/nio/fs/MacOSXFileSystem.java \
+++ sun/nio/fs/MacOSXNativeDispatcher.java
+++endif
+++
+++ifeq (, $(filter $(OPENJDK_TARGET_OS), bsd macosx))
++ EXFILES += sun/nio/ch/BsdAsynchronousChannelProvider.java \
++ sun/nio/ch/KQueue.java \
+++ sun/nio/ch/KQueueArrayWrapper.java \
++ sun/nio/ch/KQueuePort.java \
+++ sun/nio/ch/KQueueSelectorImpl.java \
+++ sun/nio/ch/KQueueSelectorProvider.java \
++ sun/nio/fs/BsdFileStore.java \
++ sun/nio/fs/BsdFileSystem.java \
++ sun/nio/fs/BsdFileSystemProvider.java \
++ sun/nio/fs/BsdNativeDispatcher.java \
++- sun/nio/fs/MacOSXFileSystemProvider.java \
++- sun/nio/fs/MacOSXFileSystem.java \
++- sun/nio/fs/MacOSXNativeDispatcher.java \
++ sun/tools/attach/BsdAttachProvider.java \
++ sun/tools/attach/BsdVirtualMachine.java
++ endif
++Index: b/jdk/src/solaris/native/sun/management/OperatingSystemImpl.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/management/OperatingSystemImpl.c
+++++ b/jdk/src/solaris/native/sun/management/OperatingSystemImpl.c
++@@ -352,7 +352,13 @@ Java_sun_management_OperatingSystemImpl_
++ size_t rlen;
++
++ mib[0] = CTL_HW;
+++#if defined (HW_MEMSIZE) // Apple
++ mib[1] = HW_MEMSIZE;
+++#elif defined(HW_PHYSMEM) // Most of BSD
+++ mib[1] = HW_PHYSMEM;
+++#else
+++ #error No ways to get physmem
+++#endif
++ rlen = sizeof(result);
++ if (sysctl(mib, 2, &result, &rlen, NULL, 0) != 0) {
++ throw_internal_error(env, "sysctl failed");
++Index: b/jdk/make/lib/SoundLibraries.gmk
++===================================================================
++--- a/jdk/make/lib/SoundLibraries.gmk
+++++ b/jdk/make/lib/SoundLibraries.gmk
++@@ -71,6 +71,11 @@ ifeq ($(OPENJDK_TARGET_OS), linux)
++ LIBJSOUND_CFLAGS += -DX_PLATFORM=X_LINUX
++ endif # OPENJDK_TARGET_OS linux
++
+++ifeq ($(OPENJDK_TARGET_OS), bsd)
+++ EXTRA_SOUND_JNI_LIBS += jsoundalsa
+++ LIBJSOUND_CFLAGS += -DX_PLATFORM=X_BSD
+++endif # OPENJDK_TARGET_OS bsd
+++
++ ifeq ($(OPENJDK_TARGET_OS), aix)
++ LIBJSOUND_CFLAGS += -DX_PLATFORM=X_AIX
++ endif # OPENJDK_TARGET_OS aix
++Index: b/jdk/make/lib/CoreLibraries.gmk
++===================================================================
++--- a/jdk/make/lib/CoreLibraries.gmk
+++++ b/jdk/make/lib/CoreLibraries.gmk
++@@ -199,6 +199,7 @@ $(eval $(call SetupNativeCompilation,BUI
++ LDFLAGS_SUFFIX_posix := -ljvm -lverify, \
++ LDFLAGS_SUFFIX_solaris := -lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM) -lc, \
++ LDFLAGS_SUFFIX_linux := $(LIBDL) $(BUILD_LIBFDLIBM), \
+++ LDFLAGS_SUFFIX_bsd := $(LIBDL) $(BUILD_LIBFDLIBM), \
++ LDFLAGS_SUFFIX_aix := $(LIBDL) $(BUILD_LIBFDLIBM) -lm,\
++ LDFLAGS_SUFFIX_macosx := -L$(JDK_OUTPUTDIR)/objs/ -lfdlibm \
++ -framework CoreFoundation \
++@@ -268,6 +269,7 @@ $(eval $(call SetupNativeCompilation,BUI
++ -export:ZIP_ReadEntry -export:ZIP_GetNextEntry -export:ZIP_CRC32 jvm.lib \
++ $(WIN_JAVA_LIB), \
++ LDFLAGS_SUFFIX_linux := -ljvm -ljava $(LIBZ), \
+++ LDFLAGS_SUFFIX_bsd := -ljvm -ljava $(LIBZ), \
++ LDFLAGS_SUFFIX_solaris := -ljvm -ljava $(LIBZ) -lc, \
++ LDFLAGS_SUFFIX_aix := -ljvm -ljava $(LIBZ),\
++ LDFLAGS_SUFFIX_macosx := $(LIBZ) -ljava -ljvm, \
++@@ -414,10 +416,12 @@ $(eval $(call SetupNativeCompilation,BUI
++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
+++ LDFLAGS_bsd := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
++ LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
++ LDFLAGS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \
++ LDFLAGS_SUFFIX_solaris := $(LIBZ) $(LIBDL) -lc, \
++ LDFLAGS_SUFFIX_linux := $(LIBZ) $(LIBDL) -lc -lpthread, \
+++ LDFLAGS_SUFFIX_bsd := $(LIBZ) $(LIBDL) -lc -pthread, \
++ LDFLAGS_SUFFIX_aix := $(LIBZ) $(LIBDL),\
++ LDFLAGS_SUFFIX_macosx := $(LIBZ), \
++ LDFLAGS_SUFFIX_windows := \
++Index: b/jdk/make/lib/NioLibraries.gmk
++===================================================================
++--- a/jdk/make/lib/NioLibraries.gmk
+++++ b/jdk/make/lib/NioLibraries.gmk
++@@ -77,6 +77,24 @@ ifeq ($(OPENJDK_TARGET_OS), linux)
++ UnixNativeDispatcher.c
++ endif
++
+++ifeq ($(OPENJDK_TARGET_OS), bsd)
+++ BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
+++# BUILD_LIBNIO_SRC += $(JDK_TOPDIR)/src/bsd/native/sun/nio/ch
+++ BUILD_LIBNIO_FILES += \
+++ BsdNativeDispatcher.c \
+++ GnomeFileTypeDetector.c \
+++ InheritedChannel.c \
+++ KQueue.c \
+++ KQueueArrayWrapper.c \
+++ KQueuePort.c \
+++ NativeThread.c \
+++ PollArrayWrapper.c \
+++ UnixAsynchronousServerSocketChannelImpl.c \
+++ UnixAsynchronousSocketChannelImpl.c \
+++ UnixCopyFile.c \
+++ UnixNativeDispatcher.c
+++endif
+++
++ ifeq ($(OPENJDK_TARGET_OS), macosx)
++ BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
++ BUILD_LIBNIO_SRC += $(JDK_TOPDIR)/src/macosx/native/sun/nio/ch
++@@ -143,6 +161,7 @@ $(eval $(call SetupNativeCompilation,BUI
++ LDFLAGS := $(LDFLAGS_JDKLIB) $(BUILD_LIBNIO_LDFLAGS) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_SUFFIX_linux := -ljava -lnet -lpthread $(LIBDL), \
+++ LDFLAGS_SUFFIX_bsd := -ljava -lnet -lpthread $(LIBDL), \
++ LDFLAGS_SUFFIX_aix := -ljava -lnet $(LIBDL),\
++ LDFLAGS_SUFFIX_solaris := -ljvm -lsocket -lposix4 $(LIBDL) \
++ -lsendfile -ljava -lnet -lc, \
++@@ -192,6 +211,7 @@ ifeq ($(OPENJDK_TARGET_OS_API), posix)
++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_SUFFIX_linux := -lpthread $(LIBDL) -ljava -ljvm, \
+++ LDFLAGS_SUFFIX_bsd := -lpthread $(LIBDL) -ljava -ljvm, \
++ LDFLAGS_SUFFIX_posix := -lnio -lnet, \
++ LDFLAGS_SUFFIX_solaris := -lsocket -ljava -ljvm -lc, \
++ LDFLAGS_SUFFIX_macosx := -ljava -ljvm, \
++Index: b/jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCM.c
++===================================================================
++--- a/jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCM.c
+++++ b/jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCM.c
++@@ -675,6 +675,7 @@ int xrun_recovery(AlsaPcmInfo* info, int
++ return -1;
++ }
++ return 1;
+++#ifdef __linux__
++ } else if (err == -ESTRPIPE) {
++ TRACE0("xrun_recovery: suspended.\n");
++ ret = snd_pcm_resume(info->handle);
++@@ -690,6 +691,7 @@ int xrun_recovery(AlsaPcmInfo* info, int
++ return -1;
++ }
++ return 1;
+++#endif
++ } else if (err == -EAGAIN) {
++ TRACE0("xrun_recovery: EAGAIN try again flag.\n");
++ return 0;
++Index: b/jdk/make/CompileLaunchers.gmk
++===================================================================
++--- a/jdk/make/CompileLaunchers.gmk
+++++ b/jdk/make/CompileLaunchers.gmk
++@@ -163,13 +163,13 @@ define SetupLauncher
++ -DLAUNCHER_NAME='"$(LAUNCHER_NAME)"' \
++ -DPROGNAME='"$1"' $(DPACKAGEPATH) \
++ $2, \
++- CFLAGS_linux := -fPIC, \
+++ CFLAGS_bsd := -fPIC, \
++ CFLAGS_solaris := -KPIC -DHAVE_GETHRTIME, \
++ LDFLAGS := $(LDFLAGS_JDKEXE) \
++ $(ORIGIN_ARG) \
++ $$($1_LDFLAGS), \
++ LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_NAME,$1), \
++- LDFLAGS_linux := -lpthread \
+++ LDFLAGS_bsd := -lpthread \
++ $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \
++ LDFLAGS_solaris := $$($1_LDFLAGS_solaris) \
++ $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \
++@@ -178,7 +178,7 @@ define SetupLauncher
++ LDFLAGS_SUFFIX_posix := $4, \
++ LDFLAGS_SUFFIX_windows := $$($1_WINDOWS_JLI_LIB) \
++ $(JDK_OUTPUTDIR)/objs/libjava/java.lib advapi32.lib $5, \
++- LDFLAGS_SUFFIX_linux := -L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli $(LIBDL) -lc, \
+++ LDFLAGS_SUFFIX_bsd := -L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli $(LIBDL) -lc, \
++ LDFLAGS_SUFFIX_solaris := -L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli -lthread $(LIBDL) -lc, \
++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/$1_objs$(OUTPUT_SUBDIR), \
++ OUTPUT_DIR := $$($1_OUTPUT_DIR_ARG)$(OUTPUT_SUBDIR), \
++@@ -538,7 +538,7 @@ ifeq ($(OPENJDK_TARGET_OS), solaris)
++ endif
++ endif
++
++-ifeq ($(OPENJDK_TARGET_OS), linux)
+++ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd), )
++ BUILD_JEXEC := 1
++ endif # OPENJDK_TARGET_OS
++
++@@ -554,7 +554,7 @@ ifeq ($(BUILD_JEXEC), 1)
++ BUILD_JEXEC_SRC := $(JDK_TOPDIR)/src/solaris/bin
++ endif
++
++- ifeq ($(OPENJDK_TARGET_OS), linux)
+++ ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd), )
++ BUILD_JEXEC_DST_DIR := $(JDK_OUTPUTDIR)/lib
++ BUILD_JEXEC_INC += -I$(JDK_TOPDIR)/src/share/bin
++ endif
++@@ -590,7 +590,7 @@ endif
++ # The java-rmi.cgi script in bin/ only gets delivered in certain situations
++ #
++ JAVA_RMI_CGI := $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/java-rmi.cgi
++-ifeq ($(OPENJDK_TARGET_OS), linux)
+++ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd), )
++ BUILD_LAUNCHERS += $(JAVA_RMI_CGI)
++ endif
++ ifeq ($(OPENJDK_TARGET_OS), solaris)
++@@ -621,11 +621,11 @@ BUILD_JSPAWNHELPER_DST_DIR := $(JDK_OUTP
++ LINK_JSPAWNHELPER_OBJECTS := $(JDK_OUTPUTDIR)/objs/libjava/childproc.o
++ LINK_JSPAWNHELPER_FLAGS :=
++
++-ifneq ($(findstring $(OPENJDK_TARGET_OS), macosx solaris aix), )
+++ifneq ($(findstring $(OPENJDK_TARGET_OS), bsd macosx solaris aix), )
++ BUILD_JSPAWNHELPER := 1
++ endif
++
++-ifeq ($(OPENJDK_TARGET_OS), macosx)
+++ifeq ($(OPENJDK_TARGET_OS), bsd macosx)
++ BUILD_JSPAWNHELPER_DST_DIR := $(JDK_OUTPUTDIR)/lib
++ endif
++
++Index: b/jdk/src/share/bin/jli_util.h
++===================================================================
++--- a/jdk/src/share/bin/jli_util.h
+++++ b/jdk/src/share/bin/jli_util.h
++@@ -83,7 +83,7 @@ void JLI_CmdToArgs(char *cmdline);
++ #ifdef __solaris__
++ #define JLI_Lseek llseek
++ #endif
++-#ifdef __linux__
+++#if defined(__linux__) || defined (__GLIBC__)
++ #define _LARGFILE64_SOURCE
++ #define JLI_Lseek lseek64
++ #endif
++Index: b/jdk/make/data/classlist/classlist.bsd
++===================================================================
++--- /dev/null
+++++ b/jdk/make/data/classlist/classlist.bsd
++@@ -0,0 +1,2454 @@
+++com/sun/java/swing/SwingUtilities3
+++com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI
+++com/sun/swing/internal/plaf/basic/resources/basic
+++com/sun/swing/internal/plaf/metal/resources/metal
+++java/applet/Applet
+++java/awt/AWTEvent
+++java/awt/AWTEvent$1
+++java/awt/AWTEventMulticaster
+++java/awt/AWTKeyStroke
+++java/awt/AWTKeyStroke$1
+++java/awt/ActiveEvent
+++java/awt/Adjustable
+++java/awt/AlphaComposite
+++java/awt/BasicStroke
+++java/awt/BorderLayout
+++java/awt/BufferCapabilities
+++java/awt/Canvas
+++java/awt/CardLayout
+++java/awt/CardLayout$Card
+++java/awt/Color
+++java/awt/Component
+++java/awt/Component$1
+++java/awt/Component$3
+++java/awt/Component$AWTTreeLock
+++java/awt/Component$AccessibleAWTComponent
+++java/awt/Component$BaselineResizeBehavior
+++java/awt/Component$BltBufferStrategy
+++java/awt/Component$BltSubRegionBufferStrategy
+++java/awt/Component$DummyRequestFocusController
+++java/awt/Component$FlipBufferStrategy
+++java/awt/ComponentOrientation
+++java/awt/Composite
+++java/awt/Conditional
+++java/awt/Container
+++java/awt/Container$1
+++java/awt/Container$AccessibleAWTContainer
+++java/awt/ContainerOrderFocusTraversalPolicy
+++java/awt/Cursor
+++java/awt/Cursor$1
+++java/awt/DefaultFocusTraversalPolicy
+++java/awt/DefaultKeyboardFocusManager
+++java/awt/DefaultKeyboardFocusManager$1
+++java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent
+++java/awt/DefaultKeyboardFocusManager$TypeAheadMarker
+++java/awt/Dialog
+++java/awt/Dialog$ModalExclusionType
+++java/awt/Dialog$ModalityType
+++java/awt/Dimension
+++java/awt/Event
+++java/awt/EventDispatchThread
+++java/awt/EventDispatchThread$1
+++java/awt/EventDispatchThread$HierarchyEventFilter
+++java/awt/EventFilter
+++java/awt/EventFilter$FilterAction
+++java/awt/EventQueue
+++java/awt/EventQueue$1
+++java/awt/EventQueue$1AWTInvocationLock
+++java/awt/EventQueue$2
+++java/awt/EventQueue$3
+++java/awt/EventQueue$4
+++java/awt/EventQueue$5
+++java/awt/FlowLayout
+++java/awt/FocusTraversalPolicy
+++java/awt/Font
+++java/awt/Font$FontAccessImpl
+++java/awt/FontFormatException
+++java/awt/FontMetrics
+++java/awt/Frame
+++java/awt/Frame$1
+++java/awt/Graphics
+++java/awt/Graphics2D
+++java/awt/GraphicsCallback
+++java/awt/GraphicsCallback$PaintCallback
+++java/awt/GraphicsConfiguration
+++java/awt/GraphicsDevice
+++java/awt/GraphicsEnvironment
+++java/awt/GraphicsEnvironment$1
+++java/awt/GridLayout
+++java/awt/Image
+++java/awt/Image$1
+++java/awt/ImageCapabilities
+++java/awt/ImageMediaEntry
+++java/awt/Insets
+++java/awt/ItemSelectable
+++java/awt/KeyEventDispatcher
+++java/awt/KeyEventPostProcessor
+++java/awt/KeyboardFocusManager
+++java/awt/KeyboardFocusManager$1
+++java/awt/KeyboardFocusManager$3
+++java/awt/KeyboardFocusManager$HeavyweightFocusRequest
+++java/awt/KeyboardFocusManager$LightweightFocusRequest
+++java/awt/Label
+++java/awt/LayoutManager
+++java/awt/LayoutManager2
+++java/awt/LightweightDispatcher
+++java/awt/LightweightDispatcher$2
+++java/awt/MediaEntry
+++java/awt/MediaTracker
+++java/awt/MenuBar
+++java/awt/MenuComponent
+++java/awt/MenuContainer
+++java/awt/ModalEventFilter
+++java/awt/Paint
+++java/awt/Panel
+++java/awt/Point
+++java/awt/PrintGraphics
+++java/awt/Queue
+++java/awt/Rectangle
+++java/awt/RenderingHints
+++java/awt/RenderingHints$Key
+++java/awt/SentEvent
+++java/awt/SequencedEvent
+++java/awt/SequencedEvent$1
+++java/awt/Shape
+++java/awt/SplashScreen
+++java/awt/Stroke
+++java/awt/SystemColor
+++java/awt/Toolkit
+++java/awt/Toolkit$1
+++java/awt/Toolkit$2
+++java/awt/Toolkit$3
+++java/awt/Toolkit$4
+++java/awt/Toolkit$5
+++java/awt/Toolkit$DesktopPropertyChangeSupport
+++java/awt/Toolkit$DesktopPropertyChangeSupport$1
+++java/awt/Toolkit$SelectiveAWTEventListener
+++java/awt/Toolkit$ToolkitEventMulticaster
+++java/awt/Transparency
+++java/awt/TrayIcon
+++java/awt/VKCollection
+++java/awt/Window
+++java/awt/Window$1
+++java/awt/Window$1DisposeAction
+++java/awt/Window$Type
+++java/awt/Window$WindowDisposerRecord
+++java/awt/color/ColorSpace
+++java/awt/color/ICC_ColorSpace
+++java/awt/color/ICC_Profile
+++java/awt/color/ICC_Profile$1
+++java/awt/color/ICC_ProfileRGB
+++java/awt/datatransfer/Clipboard
+++java/awt/datatransfer/ClipboardOwner
+++java/awt/datatransfer/FlavorMap
+++java/awt/datatransfer/FlavorTable
+++java/awt/datatransfer/SystemFlavorMap
+++java/awt/datatransfer/Transferable
+++java/awt/dnd/DropTarget
+++java/awt/dnd/DropTargetContext
+++java/awt/dnd/DropTargetListener
+++java/awt/dnd/peer/DragSourceContextPeer
+++java/awt/dnd/peer/DropTargetContextPeer
+++java/awt/dnd/peer/DropTargetPeer
+++java/awt/event/AWTEventListener
+++java/awt/event/AWTEventListenerProxy
+++java/awt/event/ActionEvent
+++java/awt/event/ActionListener
+++java/awt/event/AdjustmentEvent
+++java/awt/event/AdjustmentListener
+++java/awt/event/ComponentAdapter
+++java/awt/event/ComponentEvent
+++java/awt/event/ComponentListener
+++java/awt/event/ContainerEvent
+++java/awt/event/ContainerListener
+++java/awt/event/FocusAdapter
+++java/awt/event/FocusEvent
+++java/awt/event/FocusListener
+++java/awt/event/HierarchyBoundsListener
+++java/awt/event/HierarchyListener
+++java/awt/event/InputEvent
+++java/awt/event/InputEvent$1
+++java/awt/event/InputMethodEvent
+++java/awt/event/InputMethodListener
+++java/awt/event/InvocationEvent
+++java/awt/event/InvocationEvent$1
+++java/awt/event/ItemEvent
+++java/awt/event/ItemListener
+++java/awt/event/KeyAdapter
+++java/awt/event/KeyEvent
+++java/awt/event/KeyEvent$1
+++java/awt/event/KeyListener
+++java/awt/event/MouseAdapter
+++java/awt/event/MouseEvent
+++java/awt/event/MouseListener
+++java/awt/event/MouseMotionAdapter
+++java/awt/event/MouseMotionListener
+++java/awt/event/MouseWheelListener
+++java/awt/event/NativeLibLoader
+++java/awt/event/NativeLibLoader$1
+++java/awt/event/PaintEvent
+++java/awt/event/TextListener
+++java/awt/event/WindowAdapter
+++java/awt/event/WindowEvent
+++java/awt/event/WindowFocusListener
+++java/awt/event/WindowListener
+++java/awt/event/WindowStateListener
+++java/awt/font/FontRenderContext
+++java/awt/font/GlyphVector
+++java/awt/font/LineMetrics
+++java/awt/font/TextAttribute
+++java/awt/geom/AffineTransform
+++java/awt/geom/Dimension2D
+++java/awt/geom/GeneralPath
+++java/awt/geom/Line2D
+++java/awt/geom/Line2D$Float
+++java/awt/geom/Path2D
+++java/awt/geom/Path2D$Float
+++java/awt/geom/PathIterator
+++java/awt/geom/Point2D
+++java/awt/geom/Point2D$Float
+++java/awt/geom/RectIterator
+++java/awt/geom/Rectangle2D
+++java/awt/geom/Rectangle2D$Float
+++java/awt/geom/RectangularShape
+++java/awt/im/InputContext
+++java/awt/im/InputMethodRequests
+++java/awt/im/spi/InputMethod
+++java/awt/im/spi/InputMethodContext
+++java/awt/im/spi/InputMethodDescriptor
+++java/awt/image/BufferStrategy
+++java/awt/image/BufferedImage
+++java/awt/image/BufferedImage$1
+++java/awt/image/ColorModel
+++java/awt/image/ColorModel$1
+++java/awt/image/ComponentSampleModel
+++java/awt/image/DataBuffer
+++java/awt/image/DataBuffer$1
+++java/awt/image/DataBufferByte
+++java/awt/image/DataBufferInt
+++java/awt/image/DirectColorModel
+++java/awt/image/FilteredImageSource
+++java/awt/image/ImageConsumer
+++java/awt/image/ImageFilter
+++java/awt/image/ImageObserver
+++java/awt/image/ImageProducer
+++java/awt/image/IndexColorModel
+++java/awt/image/PackedColorModel
+++java/awt/image/PixelInterleavedSampleModel
+++java/awt/image/RGBImageFilter
+++java/awt/image/Raster
+++java/awt/image/RenderedImage
+++java/awt/image/SampleModel
+++java/awt/image/SinglePixelPackedSampleModel
+++java/awt/image/VolatileImage
+++java/awt/image/WritableRaster
+++java/awt/image/WritableRenderedImage
+++java/awt/peer/CanvasPeer
+++java/awt/peer/ComponentPeer
+++java/awt/peer/ContainerPeer
+++java/awt/peer/FramePeer
+++java/awt/peer/KeyboardFocusManagerPeer
+++java/awt/peer/LabelPeer
+++java/awt/peer/LightweightPeer
+++java/awt/peer/PanelPeer
+++java/awt/peer/SystemTrayPeer
+++java/awt/peer/WindowPeer
+++java/awt/print/PrinterGraphics
+++java/beans/ChangeListenerMap
+++java/beans/PropertyChangeEvent
+++java/beans/PropertyChangeListener
+++java/beans/PropertyChangeListenerProxy
+++java/beans/PropertyChangeSupport
+++java/beans/PropertyChangeSupport$PropertyChangeListenerMap
+++java/beans/VetoableChangeListener
+++java/io/Bits
+++java/io/BufferedInputStream
+++java/io/BufferedOutputStream
+++java/io/BufferedReader
+++java/io/BufferedWriter
+++java/io/ByteArrayInputStream
+++java/io/ByteArrayOutputStream
+++java/io/Closeable
+++java/io/DataInput
+++java/io/DataInputStream
+++java/io/DataOutput
+++java/io/DataOutputStream
+++java/io/DefaultFileSystem
+++java/io/EOFException
+++java/io/ExpiringCache
+++java/io/ExpiringCache$1
+++java/io/ExpiringCache$Entry
+++java/io/Externalizable
+++java/io/File
+++java/io/File$PathStatus
+++java/io/FileDescriptor
+++java/io/FileDescriptor$1
+++java/io/FileInputStream
+++java/io/FileInputStream$1
+++java/io/FileNotFoundException
+++java/io/FileOutputStream
+++java/io/FileOutputStream$1
+++java/io/FilePermission
+++java/io/FilePermission$1
+++java/io/FilePermissionCollection
+++java/io/FileReader
+++java/io/FileSystem
+++java/io/FileWriter
+++java/io/FilenameFilter
+++java/io/FilterInputStream
+++java/io/FilterOutputStream
+++java/io/FilterReader
+++java/io/Flushable
+++java/io/IOException
+++java/io/InputStream
+++java/io/InputStreamReader
+++java/io/InterruptedIOException
+++java/io/ObjectInput
+++java/io/ObjectInputStream
+++java/io/ObjectInputStream$BlockDataInputStream
+++java/io/ObjectInputStream$GetField
+++java/io/ObjectInputStream$GetFieldImpl
+++java/io/ObjectInputStream$HandleTable
+++java/io/ObjectInputStream$HandleTable$HandleList
+++java/io/ObjectInputStream$PeekInputStream
+++java/io/ObjectInputStream$ValidationList
+++java/io/ObjectOutput
+++java/io/ObjectOutputStream
+++java/io/ObjectOutputStream$BlockDataOutputStream
+++java/io/ObjectOutputStream$HandleTable
+++java/io/ObjectOutputStream$ReplaceTable
+++java/io/ObjectStreamClass
+++java/io/ObjectStreamClass$1
+++java/io/ObjectStreamClass$2
+++java/io/ObjectStreamClass$3
+++java/io/ObjectStreamClass$4
+++java/io/ObjectStreamClass$5
+++java/io/ObjectStreamClass$Caches
+++java/io/ObjectStreamClass$ClassDataSlot
+++java/io/ObjectStreamClass$EntryFuture
+++java/io/ObjectStreamClass$ExceptionInfo
+++java/io/ObjectStreamClass$FieldReflector
+++java/io/ObjectStreamClass$FieldReflectorKey
+++java/io/ObjectStreamClass$MemberSignature
+++java/io/ObjectStreamClass$WeakClassKey
+++java/io/ObjectStreamConstants
+++java/io/ObjectStreamField
+++java/io/OutputStream
+++java/io/OutputStreamWriter
+++java/io/PrintStream
+++java/io/PushbackInputStream
+++java/io/RandomAccessFile
+++java/io/RandomAccessFile$1
+++java/io/Reader
+++java/io/SerialCallbackContext
+++java/io/Serializable
+++java/io/StreamTokenizer
+++java/io/StringReader
+++java/io/StringWriter
+++java/io/UnixFileSystem
+++java/io/UnsupportedEncodingException
+++java/io/Writer
+++java/lang/AbstractStringBuilder
+++java/lang/Appendable
+++java/lang/ApplicationShutdownHooks
+++java/lang/ApplicationShutdownHooks$1
+++java/lang/ArithmeticException
+++java/lang/ArrayIndexOutOfBoundsException
+++java/lang/ArrayStoreException
+++java/lang/AutoCloseable
+++java/lang/Boolean
+++java/lang/BootstrapMethodError
+++java/lang/Byte
+++java/lang/CharSequence
+++java/lang/Character
+++java/lang/Character$CharacterCache
+++java/lang/CharacterData
+++java/lang/CharacterData00
+++java/lang/CharacterDataLatin1
+++java/lang/Class
+++java/lang/Class$1
+++java/lang/Class$3
+++java/lang/Class$4
+++java/lang/Class$AnnotationData
+++java/lang/Class$Atomic
+++java/lang/Class$ReflectionData
+++java/lang/ClassCastException
+++java/lang/ClassFormatError
+++java/lang/ClassLoader
+++java/lang/ClassLoader$2
+++java/lang/ClassLoader$3
+++java/lang/ClassLoader$NativeLibrary
+++java/lang/ClassLoader$ParallelLoaders
+++java/lang/ClassNotFoundException
+++java/lang/ClassValue$ClassValueMap
+++java/lang/CloneNotSupportedException
+++java/lang/Cloneable
+++java/lang/Comparable
+++java/lang/Compiler
+++java/lang/Compiler$1
+++java/lang/Double
+++java/lang/Enum
+++java/lang/Error
+++java/lang/Exception
+++java/lang/ExceptionInInitializerError
+++java/lang/Float
+++java/lang/IllegalAccessError
+++java/lang/IllegalAccessException
+++java/lang/IllegalArgumentException
+++java/lang/IllegalMonitorStateException
+++java/lang/IllegalStateException
+++java/lang/IncompatibleClassChangeError
+++java/lang/IndexOutOfBoundsException
+++java/lang/InheritableThreadLocal
+++java/lang/InstantiationException
+++java/lang/Integer
+++java/lang/Integer$IntegerCache
+++java/lang/InternalError
+++java/lang/InterruptedException
+++java/lang/Iterable
+++java/lang/LinkageError
+++java/lang/Long
+++java/lang/Long$LongCache
+++java/lang/Math
+++java/lang/NoClassDefFoundError
+++java/lang/NoSuchFieldException
+++java/lang/NoSuchMethodError
+++java/lang/NoSuchMethodException
+++java/lang/NullPointerException
+++java/lang/Number
+++java/lang/NumberFormatException
+++java/lang/Object
+++java/lang/OutOfMemoryError
+++java/lang/Package
+++java/lang/Process
+++java/lang/ProcessBuilder
+++java/lang/ProcessBuilder$NullOutputStream
+++java/lang/ProcessEnvironment
+++java/lang/ProcessEnvironment$ExternalData
+++java/lang/ProcessEnvironment$StringEnvironment
+++java/lang/ProcessEnvironment$Value
+++java/lang/ProcessEnvironment$Variable
+++java/lang/ProcessImpl
+++java/lang/Readable
+++java/lang/ReflectiveOperationException
+++java/lang/Runnable
+++java/lang/Runtime
+++java/lang/RuntimeException
+++java/lang/RuntimePermission
+++java/lang/SecurityException
+++java/lang/SecurityManager
+++java/lang/Short
+++java/lang/Shutdown
+++java/lang/Shutdown$Lock
+++java/lang/StackOverflowError
+++java/lang/StackTraceElement
+++java/lang/StrictMath
+++java/lang/String
+++java/lang/String$CaseInsensitiveComparator
+++java/lang/StringBuffer
+++java/lang/StringBuilder
+++java/lang/StringCoding
+++java/lang/StringCoding$StringDecoder
+++java/lang/StringCoding$StringEncoder
+++java/lang/StringIndexOutOfBoundsException
+++java/lang/System
+++java/lang/System$2
+++java/lang/SystemClassLoaderAction
+++java/lang/Terminator
+++java/lang/Terminator$1
+++java/lang/Thread
+++java/lang/Thread$State
+++java/lang/Thread$UncaughtExceptionHandler
+++java/lang/ThreadDeath
+++java/lang/ThreadGroup
+++java/lang/ThreadLocal
+++java/lang/ThreadLocal$ThreadLocalMap
+++java/lang/ThreadLocal$ThreadLocalMap$Entry
+++java/lang/Throwable
+++java/lang/Throwable$PrintStreamOrWriter
+++java/lang/Throwable$WrappedPrintStream
+++java/lang/UNIXProcess
+++java/lang/UNIXProcess$1
+++java/lang/UNIXProcess$2
+++java/lang/UNIXProcess$3
+++java/lang/UNIXProcess$4
+++java/lang/UNIXProcess$LaunchMechanism
+++java/lang/UNIXProcess$ProcessPipeInputStream
+++java/lang/UNIXProcess$ProcessPipeOutputStream
+++java/lang/UNIXProcess$ProcessReaperThreadFactory
+++java/lang/UNIXProcess$ProcessReaperThreadFactory$1
+++java/lang/UnsatisfiedLinkError
+++java/lang/UnsupportedOperationException
+++java/lang/VirtualMachineError
+++java/lang/Void
+++java/lang/annotation/Annotation
+++java/lang/invoke/CallSite
+++java/lang/invoke/ConstantCallSite
+++java/lang/invoke/DirectMethodHandle
+++java/lang/invoke/Invokers
+++java/lang/invoke/LambdaForm
+++java/lang/invoke/LambdaForm$NamedFunction
+++java/lang/invoke/MemberName
+++java/lang/invoke/MemberName$Factory
+++java/lang/invoke/MethodHandle
+++java/lang/invoke/MethodHandleImpl
+++java/lang/invoke/MethodHandleNatives
+++java/lang/invoke/MethodHandleStatics
+++java/lang/invoke/MethodHandleStatics$1
+++java/lang/invoke/MethodType
+++java/lang/invoke/MethodType$ConcurrentWeakInternSet
+++java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry
+++java/lang/invoke/MethodTypeForm
+++java/lang/invoke/MutableCallSite
+++java/lang/invoke/VolatileCallSite
+++java/lang/ref/FinalReference
+++java/lang/ref/Finalizer
+++java/lang/ref/Finalizer$FinalizerThread
+++java/lang/ref/PhantomReference
+++java/lang/ref/Reference
+++java/lang/ref/Reference$Lock
+++java/lang/ref/Reference$ReferenceHandler
+++java/lang/ref/ReferenceQueue
+++java/lang/ref/ReferenceQueue$Lock
+++java/lang/ref/ReferenceQueue$Null
+++java/lang/ref/SoftReference
+++java/lang/ref/WeakReference
+++java/lang/reflect/AccessibleObject
+++java/lang/reflect/AnnotatedElement
+++java/lang/reflect/Array
+++java/lang/reflect/Constructor
+++java/lang/reflect/Executable
+++java/lang/reflect/Field
+++java/lang/reflect/GenericDeclaration
+++java/lang/reflect/InvocationHandler
+++java/lang/reflect/InvocationTargetException
+++java/lang/reflect/Member
+++java/lang/reflect/Method
+++java/lang/reflect/Modifier
+++java/lang/reflect/Parameter
+++java/lang/reflect/Proxy
+++java/lang/reflect/Proxy$KeyFactory
+++java/lang/reflect/Proxy$ProxyClassFactory
+++java/lang/reflect/ReflectAccess
+++java/lang/reflect/ReflectPermission
+++java/lang/reflect/Type
+++java/lang/reflect/WeakCache
+++java/math/BigInteger
+++java/math/BigInteger$UnsafeHolder
+++java/math/MutableBigInteger
+++java/math/RoundingMode
+++java/math/SignedMutableBigInteger
+++java/net/AbstractPlainDatagramSocketImpl
+++java/net/AbstractPlainDatagramSocketImpl$1
+++java/net/AbstractPlainSocketImpl
+++java/net/AbstractPlainSocketImpl$1
+++java/net/Authenticator
+++java/net/BindException
+++java/net/ConnectException
+++java/net/DatagramPacket
+++java/net/DatagramPacket$1
+++java/net/DatagramSocket
+++java/net/DatagramSocket$1
+++java/net/DatagramSocketImpl
+++java/net/DefaultDatagramSocketImplFactory
+++java/net/DefaultInterface
+++java/net/FileNameMap
+++java/net/HttpURLConnection
+++java/net/Inet4Address
+++java/net/Inet4AddressImpl
+++java/net/Inet6Address
+++java/net/Inet6Address$Inet6AddressHolder
+++java/net/Inet6AddressImpl
+++java/net/InetAddress
+++java/net/InetAddress$1
+++java/net/InetAddress$2
+++java/net/InetAddress$Cache
+++java/net/InetAddress$Cache$Type
+++java/net/InetAddress$CacheEntry
+++java/net/InetAddress$InetAddressHolder
+++java/net/InetAddressImpl
+++java/net/InetAddressImplFactory
+++java/net/InetSocketAddress
+++java/net/InetSocketAddress$InetSocketAddressHolder
+++java/net/InterfaceAddress
+++java/net/JarURLConnection
+++java/net/MalformedURLException
+++java/net/MulticastSocket
+++java/net/NetworkInterface
+++java/net/NetworkInterface$1
+++java/net/NoRouteToHostException
+++java/net/Parts
+++java/net/PlainDatagramSocketImpl
+++java/net/PlainSocketImpl
+++java/net/Proxy
+++java/net/Proxy$Type
+++java/net/ProxySelector
+++java/net/ServerSocket
+++java/net/Socket
+++java/net/SocketAddress
+++java/net/SocketException
+++java/net/SocketImpl
+++java/net/SocketImplFactory
+++java/net/SocketOptions
+++java/net/SocksConsts
+++java/net/SocksSocketImpl
+++java/net/SocksSocketImpl$3
+++java/net/URI
+++java/net/URI$Parser
+++java/net/URL
+++java/net/URLClassLoader
+++java/net/URLClassLoader$1
+++java/net/URLClassLoader$2
+++java/net/URLClassLoader$3
+++java/net/URLClassLoader$3$1
+++java/net/URLClassLoader$7
+++java/net/URLConnection
+++java/net/URLConnection$1
+++java/net/URLStreamHandler
+++java/net/URLStreamHandlerFactory
+++java/net/UnknownHostException
+++java/nio/Bits
+++java/nio/Bits$1
+++java/nio/Buffer
+++java/nio/ByteBuffer
+++java/nio/ByteBufferAsIntBufferB
+++java/nio/ByteBufferAsShortBufferB
+++java/nio/ByteOrder
+++java/nio/CharBuffer
+++java/nio/DirectByteBuffer
+++java/nio/DirectByteBuffer$Deallocator
+++java/nio/DirectByteBufferR
+++java/nio/DirectLongBufferU
+++java/nio/HeapByteBuffer
+++java/nio/HeapCharBuffer
+++java/nio/IntBuffer
+++java/nio/LongBuffer
+++java/nio/MappedByteBuffer
+++java/nio/ShortBuffer
+++java/nio/channels/ByteChannel
+++java/nio/channels/Channel
+++java/nio/channels/FileChannel
+++java/nio/channels/FileChannel$MapMode
+++java/nio/channels/GatheringByteChannel
+++java/nio/channels/InterruptibleChannel
+++java/nio/channels/NetworkChannel
+++java/nio/channels/ReadableByteChannel
+++java/nio/channels/ScatteringByteChannel
+++java/nio/channels/SeekableByteChannel
+++java/nio/channels/SelectableChannel
+++java/nio/channels/SocketChannel
+++java/nio/channels/WritableByteChannel
+++java/nio/channels/spi/AbstractInterruptibleChannel
+++java/nio/channels/spi/AbstractInterruptibleChannel$1
+++java/nio/channels/spi/AbstractSelectableChannel
+++java/nio/charset/Charset
+++java/nio/charset/CharsetDecoder
+++java/nio/charset/CharsetEncoder
+++java/nio/charset/CoderResult
+++java/nio/charset/CoderResult$1
+++java/nio/charset/CoderResult$2
+++java/nio/charset/CoderResult$Cache
+++java/nio/charset/CodingErrorAction
+++java/nio/charset/StandardCharsets
+++java/nio/charset/spi/CharsetProvider
+++java/nio/file/Path
+++java/nio/file/Watchable
+++java/nio/file/attribute/FileAttribute
+++java/security/AccessControlContext
+++java/security/AccessController
+++java/security/AlgorithmParameters
+++java/security/AlgorithmParametersSpi
+++java/security/AllPermission
+++java/security/AllPermissionCollection
+++java/security/BasicPermission
+++java/security/BasicPermissionCollection
+++java/security/CodeSigner
+++java/security/CodeSource
+++java/security/GeneralSecurityException
+++java/security/Guard
+++java/security/InvalidKeyException
+++java/security/Key
+++java/security/KeyException
+++java/security/MessageDigest
+++java/security/MessageDigest$Delegate
+++java/security/MessageDigestSpi
+++java/security/NoSuchAlgorithmException
+++java/security/Permission
+++java/security/PermissionCollection
+++java/security/Permissions
+++java/security/Principal
+++java/security/PrivateKey
+++java/security/PrivilegedAction
+++java/security/PrivilegedActionException
+++java/security/PrivilegedExceptionAction
+++java/security/ProtectionDomain
+++java/security/ProtectionDomain$1
+++java/security/ProtectionDomain$3
+++java/security/ProtectionDomain$Key
+++java/security/Provider
+++java/security/Provider$EngineDescription
+++java/security/Provider$Service
+++java/security/Provider$ServiceKey
+++java/security/Provider$UString
+++java/security/PublicKey
+++java/security/SecureClassLoader
+++java/security/SecureRandomSpi
+++java/security/Security
+++java/security/Security$1
+++java/security/Signature
+++java/security/Signature$Delegate
+++java/security/SignatureException
+++java/security/SignatureSpi
+++java/security/UnresolvedPermission
+++java/security/cert/Certificate
+++java/security/interfaces/DSAKey
+++java/security/interfaces/DSAParams
+++java/security/interfaces/DSAPrivateKey
+++java/security/interfaces/DSAPublicKey
+++java/security/spec/AlgorithmParameterSpec
+++java/security/spec/DSAParameterSpec
+++java/text/AttributedCharacterIterator$Attribute
+++java/text/CharacterIterator
+++java/text/Collator
+++java/text/DateFormat
+++java/text/DateFormat$Field
+++java/text/DateFormatSymbols
+++java/text/DecimalFormat
+++java/text/DecimalFormatSymbols
+++java/text/DigitList
+++java/text/DontCareFieldPosition
+++java/text/DontCareFieldPosition$1
+++java/text/EntryPair
+++java/text/FieldPosition
+++java/text/Format
+++java/text/Format$Field
+++java/text/Format$FieldDelegate
+++java/text/MergeCollation
+++java/text/MessageFormat
+++java/text/MessageFormat$Field
+++java/text/NumberFormat
+++java/text/NumberFormat$Field
+++java/text/ParseException
+++java/text/PatternEntry
+++java/text/PatternEntry$Parser
+++java/text/RBCollationTables
+++java/text/RBCollationTables$BuildAPI
+++java/text/RBTableBuilder
+++java/text/RuleBasedCollator
+++java/text/SimpleDateFormat
+++java/text/spi/BreakIteratorProvider
+++java/text/spi/CollatorProvider
+++java/text/spi/DateFormatProvider
+++java/text/spi/DateFormatSymbolsProvider
+++java/text/spi/DecimalFormatSymbolsProvider
+++java/text/spi/NumberFormatProvider
+++java/util/AbstractCollection
+++java/util/AbstractList
+++java/util/AbstractList$Itr
+++java/util/AbstractList$ListItr
+++java/util/AbstractMap
+++java/util/AbstractQueue
+++java/util/AbstractSequentialList
+++java/util/AbstractSet
+++java/util/ArrayDeque
+++java/util/ArrayList
+++java/util/ArrayList$Itr
+++java/util/ArrayList$ListItr
+++java/util/ArrayList$SubList
+++java/util/ArrayList$SubList$1
+++java/util/Arrays
+++java/util/Arrays$ArrayList
+++java/util/Arrays$LegacyMergeSort
+++java/util/BitSet
+++java/util/Calendar
+++java/util/Calendar$Builder
+++java/util/Collection
+++java/util/Collections
+++java/util/Collections$3
+++java/util/Collections$EmptyEnumeration
+++java/util/Collections$EmptyIterator
+++java/util/Collections$EmptyList
+++java/util/Collections$EmptyMap
+++java/util/Collections$EmptySet
+++java/util/Collections$SetFromMap
+++java/util/Collections$SynchronizedCollection
+++java/util/Collections$SynchronizedMap
+++java/util/Collections$SynchronizedSet
+++java/util/Collections$UnmodifiableCollection
+++java/util/Collections$UnmodifiableCollection$1
+++java/util/Collections$UnmodifiableList
+++java/util/Collections$UnmodifiableList$1
+++java/util/Collections$UnmodifiableMap
+++java/util/Collections$UnmodifiableRandomAccessList
+++java/util/Collections$UnmodifiableSet
+++java/util/ComparableTimSort
+++java/util/Comparator
+++java/util/Currency
+++java/util/Currency$1
+++java/util/Currency$CurrencyNameGetter
+++java/util/Date
+++java/util/Deque
+++java/util/Dictionary
+++java/util/Enumeration
+++java/util/EventListener
+++java/util/EventListenerProxy
+++java/util/EventObject
+++java/util/GregorianCalendar
+++java/util/HashMap
+++java/util/HashMap$EntryIterator
+++java/util/HashMap$EntrySet
+++java/util/HashMap$HashIterator
+++java/util/HashMap$KeyIterator
+++java/util/HashMap$KeySet
+++java/util/HashMap$Node
+++java/util/HashMap$TreeNode
+++java/util/HashMap$ValueIterator
+++java/util/HashMap$Values
+++java/util/HashSet
+++java/util/Hashtable
+++java/util/Hashtable$Entry
+++java/util/Hashtable$EntrySet
+++java/util/Hashtable$Enumerator
+++java/util/Hashtable$ValueCollection
+++java/util/IdentityHashMap
+++java/util/IdentityHashMap$IdentityHashMapIterator
+++java/util/IdentityHashMap$KeyIterator
+++java/util/IdentityHashMap$KeySet
+++java/util/IdentityHashMap$ValueIterator
+++java/util/IdentityHashMap$Values
+++java/util/Iterator
+++java/util/LinkedHashMap
+++java/util/LinkedHashMap$Entry
+++java/util/LinkedHashMap$LinkedEntryIterator
+++java/util/LinkedHashMap$LinkedEntrySet
+++java/util/LinkedHashMap$LinkedHashIterator
+++java/util/LinkedHashMap$LinkedKeyIterator
+++java/util/LinkedHashMap$LinkedKeySet
+++java/util/LinkedList
+++java/util/LinkedList$ListItr
+++java/util/LinkedList$Node
+++java/util/List
+++java/util/ListIterator
+++java/util/ListResourceBundle
+++java/util/Locale
+++java/util/Locale$1
+++java/util/Locale$Cache
+++java/util/Locale$Category
+++java/util/Locale$LocaleKey
+++java/util/Map
+++java/util/Map$Entry
+++java/util/MissingResourceException
+++java/util/NavigableMap
+++java/util/Objects
+++java/util/PriorityQueue
+++java/util/Properties
+++java/util/Properties$LineReader
+++java/util/PropertyResourceBundle
+++java/util/Queue
+++java/util/Random
+++java/util/RandomAccess
+++java/util/ResourceBundle
+++java/util/ResourceBundle$1
+++java/util/ResourceBundle$BundleReference
+++java/util/ResourceBundle$CacheKey
+++java/util/ResourceBundle$CacheKeyReference
+++java/util/ResourceBundle$Control
+++java/util/ResourceBundle$Control$1
+++java/util/ResourceBundle$Control$CandidateListCache
+++java/util/ResourceBundle$LoaderReference
+++java/util/ResourceBundle$RBClassLoader
+++java/util/ResourceBundle$RBClassLoader$1
+++java/util/ResourceBundle$SingleFormatControl
+++java/util/ServiceLoader
+++java/util/ServiceLoader$1
+++java/util/ServiceLoader$LazyIterator
+++java/util/Set
+++java/util/SortedMap
+++java/util/Stack
+++java/util/StringTokenizer
+++java/util/TimSort
+++java/util/TimeZone
+++java/util/TimeZone$1
+++java/util/TreeMap
+++java/util/TreeMap$Entry
+++java/util/Vector
+++java/util/Vector$1
+++java/util/Vector$Itr
+++java/util/Vector$ListItr
+++java/util/WeakHashMap
+++java/util/WeakHashMap$Entry
+++java/util/WeakHashMap$KeySet
+++java/util/concurrent/AbstractExecutorService
+++java/util/concurrent/BlockingQueue
+++java/util/concurrent/ConcurrentHashMap
+++java/util/concurrent/ConcurrentHashMap$BaseIterator
+++java/util/concurrent/ConcurrentHashMap$CollectionView
+++java/util/concurrent/ConcurrentHashMap$CounterCell
+++java/util/concurrent/ConcurrentHashMap$EntrySetView
+++java/util/concurrent/ConcurrentHashMap$ForwardingNode
+++java/util/concurrent/ConcurrentHashMap$KeyIterator
+++java/util/concurrent/ConcurrentHashMap$KeySetView
+++java/util/concurrent/ConcurrentHashMap$Node
+++java/util/concurrent/ConcurrentHashMap$Segment
+++java/util/concurrent/ConcurrentHashMap$Traverser
+++java/util/concurrent/ConcurrentHashMap$ValueIterator
+++java/util/concurrent/ConcurrentHashMap$ValuesView
+++java/util/concurrent/ConcurrentMap
+++java/util/concurrent/CopyOnWriteArrayList
+++java/util/concurrent/DelayQueue
+++java/util/concurrent/Delayed
+++java/util/concurrent/Executor
+++java/util/concurrent/ExecutorService
+++java/util/concurrent/Executors
+++java/util/concurrent/RejectedExecutionHandler
+++java/util/concurrent/SynchronousQueue
+++java/util/concurrent/SynchronousQueue$TransferStack
+++java/util/concurrent/SynchronousQueue$TransferStack$SNode
+++java/util/concurrent/SynchronousQueue$Transferer
+++java/util/concurrent/ThreadFactory
+++java/util/concurrent/ThreadPoolExecutor
+++java/util/concurrent/ThreadPoolExecutor$AbortPolicy
+++java/util/concurrent/ThreadPoolExecutor$Worker
+++java/util/concurrent/TimeUnit
+++java/util/concurrent/TimeUnit$1
+++java/util/concurrent/TimeUnit$2
+++java/util/concurrent/TimeUnit$3
+++java/util/concurrent/TimeUnit$4
+++java/util/concurrent/TimeUnit$5
+++java/util/concurrent/TimeUnit$6
+++java/util/concurrent/TimeUnit$7
+++java/util/concurrent/atomic/AtomicBoolean
+++java/util/concurrent/atomic/AtomicInteger
+++java/util/concurrent/atomic/AtomicLong
+++java/util/concurrent/atomic/AtomicMarkableReference
+++java/util/concurrent/atomic/AtomicMarkableReference$Pair
+++java/util/concurrent/atomic/AtomicReferenceFieldUpdater
+++java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
+++java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1
+++java/util/concurrent/locks/AbstractOwnableSynchronizer
+++java/util/concurrent/locks/AbstractQueuedSynchronizer
+++java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject
+++java/util/concurrent/locks/AbstractQueuedSynchronizer$Node
+++java/util/concurrent/locks/Condition
+++java/util/concurrent/locks/Lock
+++java/util/concurrent/locks/LockSupport
+++java/util/concurrent/locks/ReentrantLock
+++java/util/concurrent/locks/ReentrantLock$NonfairSync
+++java/util/concurrent/locks/ReentrantLock$Sync
+++java/util/function/BiFunction
+++java/util/jar/Attributes
+++java/util/jar/Attributes$Name
+++java/util/jar/JarEntry
+++java/util/jar/JarFile
+++java/util/jar/JarFile$JarEntryIterator
+++java/util/jar/JarFile$JarFileEntry
+++java/util/jar/JarVerifier
+++java/util/jar/JarVerifier$3
+++java/util/jar/JavaUtilJarAccessImpl
+++java/util/jar/Manifest
+++java/util/jar/Manifest$FastInputStream
+++java/util/logging/Handler
+++java/util/logging/Level
+++java/util/logging/Level$KnownLevel
+++java/util/logging/LogManager
+++java/util/logging/LogManager$1
+++java/util/logging/LogManager$2
+++java/util/logging/LogManager$3
+++java/util/logging/LogManager$5
+++java/util/logging/LogManager$Cleaner
+++java/util/logging/LogManager$LogNode
+++java/util/logging/LogManager$LoggerContext
+++java/util/logging/LogManager$LoggerContext$1
+++java/util/logging/LogManager$LoggerWeakRef
+++java/util/logging/LogManager$RootLogger
+++java/util/logging/LogManager$SystemLoggerContext
+++java/util/logging/Logger
+++java/util/logging/Logger$1
+++java/util/logging/LoggingPermission
+++java/util/logging/LoggingProxyImpl
+++java/util/spi/CalendarDataProvider
+++java/util/spi/CurrencyNameProvider
+++java/util/spi/LocaleNameProvider
+++java/util/spi/LocaleServiceProvider
+++java/util/spi/ResourceBundleControlProvider
+++java/util/spi/TimeZoneNameProvider
+++java/util/zip/CRC32
+++java/util/zip/Checksum
+++java/util/zip/DeflaterOutputStream
+++java/util/zip/GZIPInputStream
+++java/util/zip/Inflater
+++java/util/zip/InflaterInputStream
+++java/util/zip/ZStreamRef
+++java/util/zip/ZipCoder
+++java/util/zip/ZipConstants
+++java/util/zip/ZipEntry
+++java/util/zip/ZipFile
+++java/util/zip/ZipFile$1
+++java/util/zip/ZipFile$ZipEntryIterator
+++java/util/zip/ZipFile$ZipFileInflaterInputStream
+++java/util/zip/ZipFile$ZipFileInputStream
+++java/util/zip/ZipInputStream
+++java/util/zip/ZipUtils
+++javax/accessibility/Accessible
+++javax/accessibility/AccessibleAction
+++javax/accessibility/AccessibleBundle
+++javax/accessibility/AccessibleComponent
+++javax/accessibility/AccessibleContext
+++javax/accessibility/AccessibleExtendedComponent
+++javax/accessibility/AccessibleRelationSet
+++javax/accessibility/AccessibleState
+++javax/accessibility/AccessibleText
+++javax/accessibility/AccessibleValue
+++javax/security/auth/Destroyable
+++javax/sound/sampled/Control$Type
+++javax/sound/sampled/DataLine
+++javax/sound/sampled/DataLine$Info
+++javax/sound/sampled/FloatControl$Type
+++javax/sound/sampled/Line
+++javax/sound/sampled/Line$Info
+++javax/sound/sampled/LineUnavailableException
+++javax/sound/sampled/UnsupportedAudioFileException
+++javax/swing/AbstractAction
+++javax/swing/AbstractButton
+++javax/swing/AbstractButton$AccessibleAbstractButton
+++javax/swing/AbstractButton$Handler
+++javax/swing/AbstractCellEditor
+++javax/swing/AbstractListModel
+++javax/swing/Action
+++javax/swing/ActionMap
+++javax/swing/AncestorNotifier
+++javax/swing/ArrayTable
+++javax/swing/BorderFactory
+++javax/swing/BoundedRangeModel
+++javax/swing/Box
+++javax/swing/Box$Filler
+++javax/swing/BoxLayout
+++javax/swing/BufferStrategyPaintManager
+++javax/swing/BufferStrategyPaintManager$BufferInfo
+++javax/swing/ButtonGroup
+++javax/swing/ButtonModel
+++javax/swing/CellEditor
+++javax/swing/CellRendererPane
+++javax/swing/ClientPropertyKey
+++javax/swing/ClientPropertyKey$1
+++javax/swing/ComboBoxEditor
+++javax/swing/ComboBoxModel
+++javax/swing/ComponentInputMap
+++javax/swing/DefaultBoundedRangeModel
+++javax/swing/DefaultButtonModel
+++javax/swing/DefaultCellEditor
+++javax/swing/DefaultCellEditor$1
+++javax/swing/DefaultCellEditor$EditorDelegate
+++javax/swing/DefaultComboBoxModel
+++javax/swing/DefaultListCellRenderer
+++javax/swing/DefaultListCellRenderer$UIResource
+++javax/swing/DefaultListModel
+++javax/swing/DefaultListSelectionModel
+++javax/swing/DefaultSingleSelectionModel
+++javax/swing/DropMode
+++javax/swing/FocusManager
+++javax/swing/GrayFilter
+++javax/swing/Icon
+++javax/swing/ImageIcon
+++javax/swing/ImageIcon$1
+++javax/swing/ImageIcon$2
+++javax/swing/ImageIcon$2$1
+++javax/swing/ImageIcon$3
+++javax/swing/InputMap
+++javax/swing/InternalFrameFocusTraversalPolicy
+++javax/swing/JButton
+++javax/swing/JCheckBox
+++javax/swing/JCheckBoxMenuItem
+++javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem
+++javax/swing/JComboBox
+++javax/swing/JComboBox$1
+++javax/swing/JComboBox$KeySelectionManager
+++javax/swing/JComponent
+++javax/swing/JComponent$1
+++javax/swing/JComponent$2
+++javax/swing/JComponent$AccessibleJComponent
+++javax/swing/JDialog
+++javax/swing/JEditorPane
+++javax/swing/JFrame
+++javax/swing/JInternalFrame
+++javax/swing/JLabel
+++javax/swing/JLayer
+++javax/swing/JLayeredPane
+++javax/swing/JList
+++javax/swing/JList$3
+++javax/swing/JList$ListSelectionHandler
+++javax/swing/JMenu
+++javax/swing/JMenu$MenuChangeListener
+++javax/swing/JMenu$WinListener
+++javax/swing/JMenuBar
+++javax/swing/JMenuItem
+++javax/swing/JMenuItem$AccessibleJMenuItem
+++javax/swing/JMenuItem$MenuItemFocusListener
+++javax/swing/JPanel
+++javax/swing/JPopupMenu
+++javax/swing/JPopupMenu$Separator
+++javax/swing/JProgressBar
+++javax/swing/JProgressBar$ModelListener
+++javax/swing/JRadioButton
+++javax/swing/JRadioButtonMenuItem
+++javax/swing/JRootPane
+++javax/swing/JRootPane$1
+++javax/swing/JRootPane$RootLayout
+++javax/swing/JScrollBar
+++javax/swing/JScrollBar$ModelListener
+++javax/swing/JScrollPane
+++javax/swing/JScrollPane$ScrollBar
+++javax/swing/JSeparator
+++javax/swing/JSlider
+++javax/swing/JSlider$ModelListener
+++javax/swing/JSplitPane
+++javax/swing/JTabbedPane
+++javax/swing/JTabbedPane$ModelListener
+++javax/swing/JTabbedPane$Page
+++javax/swing/JTable
+++javax/swing/JTable$2
+++javax/swing/JTable$5
+++javax/swing/JTable$Resizable2
+++javax/swing/JTable$Resizable3
+++javax/swing/JTextArea
+++javax/swing/JTextField
+++javax/swing/JTextField$NotifyAction
+++javax/swing/JTextField$ScrollRepainter
+++javax/swing/JToggleButton
+++javax/swing/JToggleButton$ToggleButtonModel
+++javax/swing/JToolBar
+++javax/swing/JToolBar$DefaultToolBarLayout
+++javax/swing/JToolBar$Separator
+++javax/swing/JToolTip
+++javax/swing/JTree
+++javax/swing/JTree$TreeModelHandler
+++javax/swing/JTree$TreeSelectionRedirector
+++javax/swing/JViewport
+++javax/swing/JViewport$ViewListener
+++javax/swing/JWindow
+++javax/swing/KeyStroke
+++javax/swing/KeyboardManager
+++javax/swing/KeyboardManager$ComponentKeyStrokePair
+++javax/swing/LayoutComparator
+++javax/swing/LayoutFocusTraversalPolicy
+++javax/swing/ListCellRenderer
+++javax/swing/ListModel
+++javax/swing/ListSelectionModel
+++javax/swing/LookAndFeel
+++javax/swing/MenuElement
+++javax/swing/MenuSelectionManager
+++javax/swing/MultiUIDefaults
+++javax/swing/MutableComboBoxModel
+++javax/swing/RepaintManager
+++javax/swing/RepaintManager$2
+++javax/swing/RepaintManager$3
+++javax/swing/RepaintManager$DisplayChangedHandler
+++javax/swing/RepaintManager$PaintManager
+++javax/swing/RepaintManager$ProcessingRunnable
+++javax/swing/RootPaneContainer
+++javax/swing/ScrollPaneConstants
+++javax/swing/ScrollPaneLayout
+++javax/swing/ScrollPaneLayout$UIResource
+++javax/swing/Scrollable
+++javax/swing/SingleSelectionModel
+++javax/swing/SizeRequirements
+++javax/swing/SortingFocusTraversalPolicy
+++javax/swing/SwingConstants
+++javax/swing/SwingContainerOrderFocusTraversalPolicy
+++javax/swing/SwingDefaultFocusTraversalPolicy
+++javax/swing/SwingPaintEventDispatcher
+++javax/swing/SwingUtilities
+++javax/swing/SwingUtilities$SharedOwnerFrame
+++javax/swing/Timer
+++javax/swing/Timer$DoPostEvent
+++javax/swing/TimerQueue
+++javax/swing/TimerQueue$1
+++javax/swing/TimerQueue$DelayedTimer
+++javax/swing/ToolTipManager
+++javax/swing/ToolTipManager$AccessibilityKeyListener
+++javax/swing/ToolTipManager$MoveBeforeEnterListener
+++javax/swing/ToolTipManager$insideTimerAction
+++javax/swing/ToolTipManager$outsideTimerAction
+++javax/swing/ToolTipManager$stillInsideTimerAction
+++javax/swing/TransferHandler
+++javax/swing/TransferHandler$DropHandler
+++javax/swing/TransferHandler$HasGetTransferHandler
+++javax/swing/TransferHandler$SwingDropTarget
+++javax/swing/TransferHandler$TransferAction
+++javax/swing/TransferHandler$TransferSupport
+++javax/swing/UIDefaults
+++javax/swing/UIDefaults$ActiveValue
+++javax/swing/UIDefaults$LazyInputMap
+++javax/swing/UIDefaults$LazyValue
+++javax/swing/UIDefaults$TextAndMnemonicHashMap
+++javax/swing/UIManager
+++javax/swing/UIManager$1
+++javax/swing/UIManager$2
+++javax/swing/UIManager$LAFState
+++javax/swing/UIManager$LookAndFeelInfo
+++javax/swing/UnsupportedLookAndFeelException
+++javax/swing/ViewportLayout
+++javax/swing/WindowConstants
+++javax/swing/border/AbstractBorder
+++javax/swing/border/BevelBorder
+++javax/swing/border/Border
+++javax/swing/border/CompoundBorder
+++javax/swing/border/EmptyBorder
+++javax/swing/border/EtchedBorder
+++javax/swing/border/LineBorder
+++javax/swing/border/MatteBorder
+++javax/swing/border/TitledBorder
+++javax/swing/event/AncestorEvent
+++javax/swing/event/AncestorListener
+++javax/swing/event/CaretEvent
+++javax/swing/event/CaretListener
+++javax/swing/event/CellEditorListener
+++javax/swing/event/ChangeEvent
+++javax/swing/event/ChangeListener
+++javax/swing/event/DocumentEvent
+++javax/swing/event/DocumentEvent$ElementChange
+++javax/swing/event/DocumentEvent$EventType
+++javax/swing/event/DocumentListener
+++javax/swing/event/EventListenerList
+++javax/swing/event/ListDataEvent
+++javax/swing/event/ListDataListener
+++javax/swing/event/ListSelectionEvent
+++javax/swing/event/ListSelectionListener
+++javax/swing/event/MenuDragMouseListener
+++javax/swing/event/MenuEvent
+++javax/swing/event/MenuKeyListener
+++javax/swing/event/MenuListener
+++javax/swing/event/MouseInputAdapter
+++javax/swing/event/MouseInputListener
+++javax/swing/event/PopupMenuListener
+++javax/swing/event/RowSorterListener
+++javax/swing/event/SwingPropertyChangeSupport
+++javax/swing/event/TableColumnModelEvent
+++javax/swing/event/TableColumnModelListener
+++javax/swing/event/TableModelEvent
+++javax/swing/event/TableModelListener
+++javax/swing/event/TreeExpansionListener
+++javax/swing/event/TreeModelEvent
+++javax/swing/event/TreeModelListener
+++javax/swing/event/TreeSelectionEvent
+++javax/swing/event/TreeSelectionListener
+++javax/swing/event/UndoableEditEvent
+++javax/swing/event/UndoableEditListener
+++javax/swing/filechooser/FileFilter
+++javax/swing/plaf/ActionMapUIResource
+++javax/swing/plaf/BorderUIResource
+++javax/swing/plaf/BorderUIResource$CompoundBorderUIResource
+++javax/swing/plaf/BorderUIResource$EmptyBorderUIResource
+++javax/swing/plaf/BorderUIResource$LineBorderUIResource
+++javax/swing/plaf/ButtonUI
+++javax/swing/plaf/ColorUIResource
+++javax/swing/plaf/ComboBoxUI
+++javax/swing/plaf/ComponentInputMapUIResource
+++javax/swing/plaf/ComponentUI
+++javax/swing/plaf/DimensionUIResource
+++javax/swing/plaf/FontUIResource
+++javax/swing/plaf/InputMapUIResource
+++javax/swing/plaf/InsetsUIResource
+++javax/swing/plaf/LabelUI
+++javax/swing/plaf/ListUI
+++javax/swing/plaf/MenuBarUI
+++javax/swing/plaf/MenuItemUI
+++javax/swing/plaf/PanelUI
+++javax/swing/plaf/PopupMenuUI
+++javax/swing/plaf/ProgressBarUI
+++javax/swing/plaf/RootPaneUI
+++javax/swing/plaf/ScrollBarUI
+++javax/swing/plaf/ScrollPaneUI
+++javax/swing/plaf/SeparatorUI
+++javax/swing/plaf/SliderUI
+++javax/swing/plaf/SplitPaneUI
+++javax/swing/plaf/TabbedPaneUI
+++javax/swing/plaf/TableHeaderUI
+++javax/swing/plaf/TableUI
+++javax/swing/plaf/TextUI
+++javax/swing/plaf/ToolBarUI
+++javax/swing/plaf/TreeUI
+++javax/swing/plaf/UIResource
+++javax/swing/plaf/ViewportUI
+++javax/swing/plaf/basic/BasicArrowButton
+++javax/swing/plaf/basic/BasicBorders
+++javax/swing/plaf/basic/BasicBorders$ButtonBorder
+++javax/swing/plaf/basic/BasicBorders$MarginBorder
+++javax/swing/plaf/basic/BasicBorders$RadioButtonBorder
+++javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder
+++javax/swing/plaf/basic/BasicBorders$SplitPaneBorder
+++javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder
+++javax/swing/plaf/basic/BasicButtonListener
+++javax/swing/plaf/basic/BasicButtonUI
+++javax/swing/plaf/basic/BasicCheckBoxMenuItemUI
+++javax/swing/plaf/basic/BasicComboBoxEditor
+++javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField
+++javax/swing/plaf/basic/BasicComboBoxEditor$UIResource
+++javax/swing/plaf/basic/BasicComboBoxRenderer
+++javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource
+++javax/swing/plaf/basic/BasicComboBoxUI
+++javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager
+++javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager
+++javax/swing/plaf/basic/BasicComboBoxUI$Handler
+++javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler
+++javax/swing/plaf/basic/BasicComboPopup
+++javax/swing/plaf/basic/BasicComboPopup$1
+++javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass
+++javax/swing/plaf/basic/BasicComboPopup$Handler
+++javax/swing/plaf/basic/BasicGraphicsUtils
+++javax/swing/plaf/basic/BasicHTML
+++javax/swing/plaf/basic/BasicLabelUI
+++javax/swing/plaf/basic/BasicListUI
+++javax/swing/plaf/basic/BasicListUI$Handler
+++javax/swing/plaf/basic/BasicListUI$ListTransferHandler
+++javax/swing/plaf/basic/BasicLookAndFeel
+++javax/swing/plaf/basic/BasicLookAndFeel$1
+++javax/swing/plaf/basic/BasicLookAndFeel$2
+++javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper
+++javax/swing/plaf/basic/BasicMenuBarUI
+++javax/swing/plaf/basic/BasicMenuBarUI$Handler
+++javax/swing/plaf/basic/BasicMenuItemUI
+++javax/swing/plaf/basic/BasicMenuItemUI$Handler
+++javax/swing/plaf/basic/BasicMenuUI
+++javax/swing/plaf/basic/BasicMenuUI$Handler
+++javax/swing/plaf/basic/BasicPanelUI
+++javax/swing/plaf/basic/BasicPopupMenuUI
+++javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener
+++javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener
+++javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper
+++javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1
+++javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber
+++javax/swing/plaf/basic/BasicProgressBarUI
+++javax/swing/plaf/basic/BasicProgressBarUI$Handler
+++javax/swing/plaf/basic/BasicRadioButtonMenuItemUI
+++javax/swing/plaf/basic/BasicRadioButtonUI
+++javax/swing/plaf/basic/BasicRootPaneUI
+++javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap
+++javax/swing/plaf/basic/BasicScrollBarUI
+++javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener
+++javax/swing/plaf/basic/BasicScrollBarUI$Handler
+++javax/swing/plaf/basic/BasicScrollBarUI$ModelListener
+++javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler
+++javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener
+++javax/swing/plaf/basic/BasicScrollBarUI$TrackListener
+++javax/swing/plaf/basic/BasicScrollPaneUI
+++javax/swing/plaf/basic/BasicScrollPaneUI$Handler
+++javax/swing/plaf/basic/BasicSeparatorUI
+++javax/swing/plaf/basic/BasicSliderUI
+++javax/swing/plaf/basic/BasicSliderUI$Actions
+++javax/swing/plaf/basic/BasicSliderUI$Handler
+++javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler
+++javax/swing/plaf/basic/BasicSliderUI$ScrollListener
+++javax/swing/plaf/basic/BasicSliderUI$TrackListener
+++javax/swing/plaf/basic/BasicSplitPaneDivider
+++javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout
+++javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler
+++javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler
+++javax/swing/plaf/basic/BasicSplitPaneUI
+++javax/swing/plaf/basic/BasicSplitPaneUI$1
+++javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager
+++javax/swing/plaf/basic/BasicSplitPaneUI$Handler
+++javax/swing/plaf/basic/BasicTabbedPaneUI
+++javax/swing/plaf/basic/BasicTabbedPaneUI$Handler
+++javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout
+++javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout
+++javax/swing/plaf/basic/BasicTableHeaderUI
+++javax/swing/plaf/basic/BasicTableHeaderUI$1
+++javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler
+++javax/swing/plaf/basic/BasicTableUI
+++javax/swing/plaf/basic/BasicTableUI$Handler
+++javax/swing/plaf/basic/BasicTableUI$TableTransferHandler
+++javax/swing/plaf/basic/BasicTextAreaUI
+++javax/swing/plaf/basic/BasicTextFieldUI
+++javax/swing/plaf/basic/BasicTextUI
+++javax/swing/plaf/basic/BasicTextUI$BasicCaret
+++javax/swing/plaf/basic/BasicTextUI$BasicCursor
+++javax/swing/plaf/basic/BasicTextUI$BasicHighlighter
+++javax/swing/plaf/basic/BasicTextUI$DragListener
+++javax/swing/plaf/basic/BasicTextUI$FocusAction
+++javax/swing/plaf/basic/BasicTextUI$RootView
+++javax/swing/plaf/basic/BasicTextUI$TextActionWrapper
+++javax/swing/plaf/basic/BasicTextUI$TextTransferHandler
+++javax/swing/plaf/basic/BasicTextUI$UpdateHandler
+++javax/swing/plaf/basic/BasicToggleButtonUI
+++javax/swing/plaf/basic/BasicToolBarSeparatorUI
+++javax/swing/plaf/basic/BasicToolBarUI
+++javax/swing/plaf/basic/BasicToolBarUI$DockingListener
+++javax/swing/plaf/basic/BasicToolBarUI$Handler
+++javax/swing/plaf/basic/BasicTreeUI
+++javax/swing/plaf/basic/BasicTreeUI$Actions
+++javax/swing/plaf/basic/BasicTreeUI$Handler
+++javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler
+++javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler
+++javax/swing/plaf/basic/BasicViewportUI
+++javax/swing/plaf/basic/ComboPopup
+++javax/swing/plaf/basic/DefaultMenuLayout
+++javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag
+++javax/swing/plaf/basic/LazyActionMap
+++javax/swing/plaf/metal/DefaultMetalTheme
+++javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate
+++javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1
+++javax/swing/plaf/metal/MetalBorders
+++javax/swing/plaf/metal/MetalBorders$ButtonBorder
+++javax/swing/plaf/metal/MetalBorders$Flush3DBorder
+++javax/swing/plaf/metal/MetalBorders$MenuBarBorder
+++javax/swing/plaf/metal/MetalBorders$MenuItemBorder
+++javax/swing/plaf/metal/MetalBorders$PopupMenuBorder
+++javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder
+++javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder
+++javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder
+++javax/swing/plaf/metal/MetalBorders$TextFieldBorder
+++javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder
+++javax/swing/plaf/metal/MetalBorders$ToolBarBorder
+++javax/swing/plaf/metal/MetalBumps
+++javax/swing/plaf/metal/MetalButtonUI
+++javax/swing/plaf/metal/MetalCheckBoxUI
+++javax/swing/plaf/metal/MetalComboBoxButton
+++javax/swing/plaf/metal/MetalComboBoxButton$1
+++javax/swing/plaf/metal/MetalComboBoxEditor
+++javax/swing/plaf/metal/MetalComboBoxEditor$1
+++javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder
+++javax/swing/plaf/metal/MetalComboBoxEditor$UIResource
+++javax/swing/plaf/metal/MetalComboBoxIcon
+++javax/swing/plaf/metal/MetalComboBoxUI
+++javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager
+++javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener
+++javax/swing/plaf/metal/MetalIconFactory
+++javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon
+++javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon
+++javax/swing/plaf/metal/MetalIconFactory$FolderIcon16
+++javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon
+++javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon
+++javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon
+++javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon
+++javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon
+++javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon
+++javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon
+++javax/swing/plaf/metal/MetalLabelUI
+++javax/swing/plaf/metal/MetalLookAndFeel
+++javax/swing/plaf/metal/MetalLookAndFeel$AATextListener
+++javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue
+++javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue
+++javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1
+++javax/swing/plaf/metal/MetalPopupMenuSeparatorUI
+++javax/swing/plaf/metal/MetalProgressBarUI
+++javax/swing/plaf/metal/MetalRadioButtonUI
+++javax/swing/plaf/metal/MetalRootPaneUI
+++javax/swing/plaf/metal/MetalScrollBarUI
+++javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener
+++javax/swing/plaf/metal/MetalScrollButton
+++javax/swing/plaf/metal/MetalScrollPaneUI
+++javax/swing/plaf/metal/MetalScrollPaneUI$1
+++javax/swing/plaf/metal/MetalSeparatorUI
+++javax/swing/plaf/metal/MetalSliderUI
+++javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener
+++javax/swing/plaf/metal/MetalSplitPaneDivider
+++javax/swing/plaf/metal/MetalSplitPaneDivider$1
+++javax/swing/plaf/metal/MetalSplitPaneDivider$2
+++javax/swing/plaf/metal/MetalSplitPaneUI
+++javax/swing/plaf/metal/MetalTabbedPaneUI
+++javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout
+++javax/swing/plaf/metal/MetalTextFieldUI
+++javax/swing/plaf/metal/MetalTheme
+++javax/swing/plaf/metal/MetalToggleButtonUI
+++javax/swing/plaf/metal/MetalToolBarUI
+++javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener
+++javax/swing/plaf/metal/MetalTreeUI
+++javax/swing/plaf/metal/MetalTreeUI$LineListener
+++javax/swing/plaf/metal/OceanTheme
+++javax/swing/plaf/metal/OceanTheme$1
+++javax/swing/plaf/metal/OceanTheme$2
+++javax/swing/plaf/metal/OceanTheme$3
+++javax/swing/plaf/metal/OceanTheme$4
+++javax/swing/plaf/metal/OceanTheme$5
+++javax/swing/plaf/metal/OceanTheme$6
+++javax/swing/plaf/synth/SynthConstants
+++javax/swing/plaf/synth/SynthUI
+++javax/swing/table/AbstractTableModel
+++javax/swing/table/DefaultTableCellRenderer
+++javax/swing/table/DefaultTableColumnModel
+++javax/swing/table/DefaultTableModel
+++javax/swing/table/JTableHeader
+++javax/swing/table/TableCellEditor
+++javax/swing/table/TableCellRenderer
+++javax/swing/table/TableColumn
+++javax/swing/table/TableColumnModel
+++javax/swing/table/TableModel
+++javax/swing/text/AbstractDocument
+++javax/swing/text/AbstractDocument$1
+++javax/swing/text/AbstractDocument$AbstractElement
+++javax/swing/text/AbstractDocument$AttributeContext
+++javax/swing/text/AbstractDocument$BidiElement
+++javax/swing/text/AbstractDocument$BidiRootElement
+++javax/swing/text/AbstractDocument$BranchElement
+++javax/swing/text/AbstractDocument$Content
+++javax/swing/text/AbstractDocument$DefaultDocumentEvent
+++javax/swing/text/AbstractDocument$ElementEdit
+++javax/swing/text/AbstractDocument$InsertStringResult
+++javax/swing/text/AbstractDocument$LeafElement
+++javax/swing/text/AttributeSet
+++javax/swing/text/AttributeSet$CharacterAttribute
+++javax/swing/text/AttributeSet$ColorAttribute
+++javax/swing/text/AttributeSet$FontAttribute
+++javax/swing/text/AttributeSet$ParagraphAttribute
+++javax/swing/text/Caret
+++javax/swing/text/DefaultCaret
+++javax/swing/text/DefaultCaret$Handler
+++javax/swing/text/DefaultEditorKit
+++javax/swing/text/DefaultEditorKit$BeepAction
+++javax/swing/text/DefaultEditorKit$BeginAction
+++javax/swing/text/DefaultEditorKit$BeginLineAction
+++javax/swing/text/DefaultEditorKit$BeginParagraphAction
+++javax/swing/text/DefaultEditorKit$BeginWordAction
+++javax/swing/text/DefaultEditorKit$CopyAction
+++javax/swing/text/DefaultEditorKit$CutAction
+++javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction
+++javax/swing/text/DefaultEditorKit$DeleteNextCharAction
+++javax/swing/text/DefaultEditorKit$DeletePrevCharAction
+++javax/swing/text/DefaultEditorKit$DeleteWordAction
+++javax/swing/text/DefaultEditorKit$DumpModelAction
+++javax/swing/text/DefaultEditorKit$EndAction
+++javax/swing/text/DefaultEditorKit$EndLineAction
+++javax/swing/text/DefaultEditorKit$EndParagraphAction
+++javax/swing/text/DefaultEditorKit$EndWordAction
+++javax/swing/text/DefaultEditorKit$InsertBreakAction
+++javax/swing/text/DefaultEditorKit$InsertContentAction
+++javax/swing/text/DefaultEditorKit$InsertTabAction
+++javax/swing/text/DefaultEditorKit$NextVisualPositionAction
+++javax/swing/text/DefaultEditorKit$NextWordAction
+++javax/swing/text/DefaultEditorKit$PageAction
+++javax/swing/text/DefaultEditorKit$PasteAction
+++javax/swing/text/DefaultEditorKit$PreviousWordAction
+++javax/swing/text/DefaultEditorKit$ReadOnlyAction
+++javax/swing/text/DefaultEditorKit$SelectAllAction
+++javax/swing/text/DefaultEditorKit$SelectLineAction
+++javax/swing/text/DefaultEditorKit$SelectParagraphAction
+++javax/swing/text/DefaultEditorKit$SelectWordAction
+++javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction
+++javax/swing/text/DefaultEditorKit$UnselectAction
+++javax/swing/text/DefaultEditorKit$VerticalPageAction
+++javax/swing/text/DefaultEditorKit$WritableAction
+++javax/swing/text/DefaultHighlighter
+++javax/swing/text/DefaultHighlighter$DefaultHighlightPainter
+++javax/swing/text/DefaultHighlighter$SafeDamager
+++javax/swing/text/Document
+++javax/swing/text/EditorKit
+++javax/swing/text/Element
+++javax/swing/text/FieldView
+++javax/swing/text/GapContent
+++javax/swing/text/GapContent$InsertUndo
+++javax/swing/text/GapContent$MarkData
+++javax/swing/text/GapContent$MarkVector
+++javax/swing/text/GapContent$StickyPosition
+++javax/swing/text/GapVector
+++javax/swing/text/Highlighter
+++javax/swing/text/Highlighter$Highlight
+++javax/swing/text/Highlighter$HighlightPainter
+++javax/swing/text/JTextComponent
+++javax/swing/text/JTextComponent$1
+++javax/swing/text/JTextComponent$DefaultKeymap
+++javax/swing/text/JTextComponent$KeymapActionMap
+++javax/swing/text/JTextComponent$KeymapWrapper
+++javax/swing/text/JTextComponent$MutableCaretEvent
+++javax/swing/text/Keymap
+++javax/swing/text/LayeredHighlighter
+++javax/swing/text/LayeredHighlighter$LayerPainter
+++javax/swing/text/MutableAttributeSet
+++javax/swing/text/PlainDocument
+++javax/swing/text/PlainView
+++javax/swing/text/Position
+++javax/swing/text/Position$Bias
+++javax/swing/text/Segment
+++javax/swing/text/SegmentCache
+++javax/swing/text/SegmentCache$CachedSegment
+++javax/swing/text/SimpleAttributeSet
+++javax/swing/text/SimpleAttributeSet$EmptyAttributeSet
+++javax/swing/text/Style
+++javax/swing/text/StyleConstants
+++javax/swing/text/StyleConstants$CharacterConstants
+++javax/swing/text/StyleConstants$ColorConstants
+++javax/swing/text/StyleConstants$FontConstants
+++javax/swing/text/StyleConstants$ParagraphConstants
+++javax/swing/text/StyleContext
+++javax/swing/text/StyleContext$FontKey
+++javax/swing/text/StyleContext$KeyEnumeration
+++javax/swing/text/StyleContext$NamedStyle
+++javax/swing/text/StyleContext$SmallAttributeSet
+++javax/swing/text/TabExpander
+++javax/swing/text/TextAction
+++javax/swing/text/Utilities
+++javax/swing/text/View
+++javax/swing/text/ViewFactory
+++javax/swing/tree/AbstractLayoutCache
+++javax/swing/tree/AbstractLayoutCache$NodeDimensions
+++javax/swing/tree/DefaultMutableTreeNode
+++javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration
+++javax/swing/tree/DefaultTreeCellEditor
+++javax/swing/tree/DefaultTreeCellEditor$1
+++javax/swing/tree/DefaultTreeCellEditor$DefaultTextField
+++javax/swing/tree/DefaultTreeCellEditor$EditorContainer
+++javax/swing/tree/DefaultTreeCellRenderer
+++javax/swing/tree/DefaultTreeModel
+++javax/swing/tree/DefaultTreeSelectionModel
+++javax/swing/tree/MutableTreeNode
+++javax/swing/tree/PathPlaceHolder
+++javax/swing/tree/RowMapper
+++javax/swing/tree/TreeCellEditor
+++javax/swing/tree/TreeCellRenderer
+++javax/swing/tree/TreeModel
+++javax/swing/tree/TreeNode
+++javax/swing/tree/TreePath
+++javax/swing/tree/TreeSelectionModel
+++javax/swing/tree/VariableHeightLayoutCache
+++javax/swing/tree/VariableHeightLayoutCache$TreeStateNode
+++javax/swing/undo/AbstractUndoableEdit
+++javax/swing/undo/CompoundEdit
+++javax/swing/undo/UndoableEdit
+++javax/xml/parsers/DocumentBuilder
+++javax/xml/parsers/DocumentBuilderFactory
+++javax/xml/parsers/FactoryFinder
+++javax/xml/parsers/FactoryFinder$1
+++javax/xml/parsers/ParserConfigurationException
+++javax/xml/parsers/SecuritySupport
+++javax/xml/parsers/SecuritySupport$2
+++javax/xml/parsers/SecuritySupport$5
+++org/w3c/dom/Attr
+++org/w3c/dom/CDATASection
+++org/w3c/dom/CharacterData
+++org/w3c/dom/Comment
+++org/w3c/dom/DOMException
+++org/w3c/dom/Document
+++org/w3c/dom/DocumentFragment
+++org/w3c/dom/DocumentType
+++org/w3c/dom/Element
+++org/w3c/dom/Entity
+++org/w3c/dom/EntityReference
+++org/w3c/dom/NamedNodeMap
+++org/w3c/dom/Node
+++org/w3c/dom/NodeList
+++org/w3c/dom/Notation
+++org/w3c/dom/ProcessingInstruction
+++org/w3c/dom/Text
+++org/w3c/dom/events/DocumentEvent
+++org/w3c/dom/events/Event
+++org/w3c/dom/events/EventException
+++org/w3c/dom/events/EventTarget
+++org/w3c/dom/events/MutationEvent
+++org/w3c/dom/ranges/DocumentRange
+++org/w3c/dom/ranges/Range
+++org/w3c/dom/traversal/DocumentTraversal
+++org/w3c/dom/traversal/NodeIterator
+++org/w3c/dom/traversal/TreeWalker
+++org/xml/sax/AttributeList
+++org/xml/sax/ContentHandler
+++org/xml/sax/DTDHandler
+++org/xml/sax/EntityResolver
+++org/xml/sax/ErrorHandler
+++org/xml/sax/InputSource
+++org/xml/sax/Locator
+++org/xml/sax/SAXException
+++org/xml/sax/SAXNotRecognizedException
+++org/xml/sax/SAXNotSupportedException
+++org/xml/sax/SAXParseException
+++org/xml/sax/helpers/DefaultHandler
+++sun/awt/AWTAccessor
+++sun/awt/AWTAccessor$AWTEventAccessor
+++sun/awt/AWTAccessor$ClientPropertyKeyAccessor
+++sun/awt/AWTAccessor$ComponentAccessor
+++sun/awt/AWTAccessor$ContainerAccessor
+++sun/awt/AWTAccessor$CursorAccessor
+++sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor
+++sun/awt/AWTAccessor$EventQueueAccessor
+++sun/awt/AWTAccessor$FrameAccessor
+++sun/awt/AWTAccessor$InputEventAccessor
+++sun/awt/AWTAccessor$InvocationEventAccessor
+++sun/awt/AWTAccessor$KeyEventAccessor
+++sun/awt/AWTAccessor$KeyboardFocusManagerAccessor
+++sun/awt/AWTAccessor$SequencedEventAccessor
+++sun/awt/AWTAccessor$ToolkitAccessor
+++sun/awt/AWTAccessor$WindowAccessor
+++sun/awt/AWTAutoShutdown
+++sun/awt/AWTIcon32_java_icon16_png
+++sun/awt/AWTIcon32_java_icon24_png
+++sun/awt/AWTIcon32_java_icon32_png
+++sun/awt/AWTIcon32_java_icon48_png
+++sun/awt/AppContext
+++sun/awt/AppContext$1
+++sun/awt/AppContext$2
+++sun/awt/AppContext$3
+++sun/awt/AppContext$6
+++sun/awt/AppContext$GetAppContextLock
+++sun/awt/AppContext$State
+++sun/awt/CausedFocusEvent
+++sun/awt/CausedFocusEvent$Cause
+++sun/awt/ComponentFactory
+++sun/awt/ConstrainableGraphics
+++sun/awt/DisplayChangedListener
+++sun/awt/EmbeddedFrame
+++sun/awt/EventQueueDelegate
+++sun/awt/EventQueueItem
+++sun/awt/FontConfiguration
+++sun/awt/FontDescriptor
+++sun/awt/GlobalCursorManager
+++sun/awt/GlobalCursorManager$NativeUpdater
+++sun/awt/HeadlessToolkit
+++sun/awt/IconInfo
+++sun/awt/InputMethodSupport
+++sun/awt/KeyboardFocusManagerPeerImpl
+++sun/awt/KeyboardFocusManagerPeerProvider
+++sun/awt/LightweightFrame
+++sun/awt/ModalityListener
+++sun/awt/MostRecentKeyValue
+++sun/awt/NullComponentPeer
+++sun/awt/OSInfo
+++sun/awt/OSInfo$1
+++sun/awt/OSInfo$OSType
+++sun/awt/OSInfo$WindowsVersion
+++sun/awt/PaintEventDispatcher
+++sun/awt/PeerEvent
+++sun/awt/PostEventQueue
+++sun/awt/RepaintArea
+++sun/awt/RequestFocusController
+++sun/awt/SubRegionShowable
+++sun/awt/SunDisplayChanger
+++sun/awt/SunGraphicsCallback
+++sun/awt/SunHints
+++sun/awt/SunHints$Key
+++sun/awt/SunHints$LCDContrastKey
+++sun/awt/SunHints$Value
+++sun/awt/SunToolkit
+++sun/awt/SunToolkit$ModalityListenerList
+++sun/awt/TimedWindowEvent
+++sun/awt/UNIXToolkit
+++sun/awt/WindowClosingListener
+++sun/awt/WindowClosingSupport
+++sun/awt/X11/AwtGraphicsConfigData
+++sun/awt/X11/AwtScreenData
+++sun/awt/X11/MotifColorUtilities
+++sun/awt/X11/MotifDnDConstants
+++sun/awt/X11/MotifDnDDragSourceProtocol
+++sun/awt/X11/MotifDnDDropTargetProtocol
+++sun/awt/X11/Native
+++sun/awt/X11/Native$1
+++sun/awt/X11/OwnershipListener
+++sun/awt/X11/PropMwmHints
+++sun/awt/X11/UnsafeXDisposerRecord
+++sun/awt/X11/WindowDimensions
+++sun/awt/X11/WindowPropertyGetter
+++sun/awt/X11/XAWTXSettings
+++sun/awt/X11/XAnyEvent
+++sun/awt/X11/XAtom
+++sun/awt/X11/XAtomList
+++sun/awt/X11/XAwtState
+++sun/awt/X11/XBaseWindow
+++sun/awt/X11/XBaseWindow$1
+++sun/awt/X11/XBaseWindow$InitialiseState
+++sun/awt/X11/XBaseWindow$StateLock
+++sun/awt/X11/XCanvasPeer
+++sun/awt/X11/XClientMessageEvent
+++sun/awt/X11/XClipboard
+++sun/awt/X11/XComponentPeer
+++sun/awt/X11/XComponentPeer$1
+++sun/awt/X11/XConfigureEvent
+++sun/awt/X11/XContentWindow
+++sun/awt/X11/XCreateWindowParams
+++sun/awt/X11/XDecoratedPeer
+++sun/awt/X11/XDnDConstants
+++sun/awt/X11/XDnDDragSourceProtocol
+++sun/awt/X11/XDnDDropTargetProtocol
+++sun/awt/X11/XDragAndDropProtocols
+++sun/awt/X11/XDragSourceContextPeer
+++sun/awt/X11/XDragSourceProtocol
+++sun/awt/X11/XDragSourceProtocolListener
+++sun/awt/X11/XDropTargetContextPeer
+++sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl
+++sun/awt/X11/XDropTargetEventProcessor
+++sun/awt/X11/XDropTargetProtocol
+++sun/awt/X11/XDropTargetProtocolListener
+++sun/awt/X11/XDropTargetRegistry
+++sun/awt/X11/XEmbeddedFramePeer
+++sun/awt/X11/XErrorEvent
+++sun/awt/X11/XErrorHandler
+++sun/awt/X11/XErrorHandler$IgnoreBadWindowHandler
+++sun/awt/X11/XErrorHandler$VerifyChangePropertyHandler
+++sun/awt/X11/XErrorHandler$XBaseErrorHandler
+++sun/awt/X11/XErrorHandler$XErrorHandlerWithFlag
+++sun/awt/X11/XErrorHandler$XShmAttachHandler
+++sun/awt/X11/XErrorHandlerUtil
+++sun/awt/X11/XEvent
+++sun/awt/X11/XEventDispatcher
+++sun/awt/X11/XExposeEvent
+++sun/awt/X11/XFocusChangeEvent
+++sun/awt/X11/XFocusProxyWindow
+++sun/awt/X11/XFramePeer
+++sun/awt/X11/XGlobalCursorManager
+++sun/awt/X11/XInputMethod
+++sun/awt/X11/XInputMethodDescriptor
+++sun/awt/X11/XKeyboardFocusManagerPeer
+++sun/awt/X11/XLabelPeer
+++sun/awt/X11/XLayerProtocol
+++sun/awt/X11/XMSelection
+++sun/awt/X11/XMSelection$1
+++sun/awt/X11/XMSelection$3
+++sun/awt/X11/XMSelectionListener
+++sun/awt/X11/XModifierKeymap
+++sun/awt/X11/XNETProtocol
+++sun/awt/X11/XPanelPeer
+++sun/awt/X11/XPropertyCache
+++sun/awt/X11/XPropertyEvent
+++sun/awt/X11/XProtocol
+++sun/awt/X11/XRepaintArea
+++sun/awt/X11/XReparentEvent
+++sun/awt/X11/XRootWindow
+++sun/awt/X11/XSelection
+++sun/awt/X11/XSelection$IncrementalTransferHandler
+++sun/awt/X11/XSelection$SelectionEventHandler
+++sun/awt/X11/XSetWindowAttributes
+++sun/awt/X11/XSizeHints
+++sun/awt/X11/XStateProtocol
+++sun/awt/X11/XSystemTrayPeer
+++sun/awt/X11/XToolkit
+++sun/awt/X11/XToolkit$1
+++sun/awt/X11/XToolkit$2
+++sun/awt/X11/XToolkit$2$1
+++sun/awt/X11/XToolkit$3
+++sun/awt/X11/XToolkit$4
+++sun/awt/X11/XToolkit$5
+++sun/awt/X11/XUnmapEvent
+++sun/awt/X11/XVisibilityEvent
+++sun/awt/X11/XVisualInfo
+++sun/awt/X11/XWINProtocol
+++sun/awt/X11/XWM
+++sun/awt/X11/XWM$1
+++sun/awt/X11/XWMHints
+++sun/awt/X11/XWindow
+++sun/awt/X11/XWindowAttributes
+++sun/awt/X11/XWindowAttributesData
+++sun/awt/X11/XWindowPeer
+++sun/awt/X11/XWindowPeer$2
+++sun/awt/X11/XWindowPeer$4
+++sun/awt/X11/XWrapperBase
+++sun/awt/X11/XlibUtil
+++sun/awt/X11/XlibWrapper
+++sun/awt/X11ComponentPeer
+++sun/awt/X11FontManager
+++sun/awt/X11GraphicsConfig
+++sun/awt/X11GraphicsConfig$X11GCDisposerRecord
+++sun/awt/X11GraphicsDevice
+++sun/awt/X11GraphicsEnvironment
+++sun/awt/X11GraphicsEnvironment$1
+++sun/awt/X11InputMethod
+++sun/awt/X11InputMethodDescriptor
+++sun/awt/XSettings
+++sun/awt/XSettings$Update
+++sun/awt/datatransfer/SunClipboard
+++sun/awt/dnd/SunDragSourceContextPeer
+++sun/awt/dnd/SunDropTargetContextPeer
+++sun/awt/dnd/SunDropTargetEvent
+++sun/awt/event/IgnorePaintEvent
+++sun/awt/geom/PathConsumer2D
+++sun/awt/im/ExecutableInputMethodManager
+++sun/awt/im/ExecutableInputMethodManager$3
+++sun/awt/im/InputContext
+++sun/awt/im/InputMethodAdapter
+++sun/awt/im/InputMethodContext
+++sun/awt/im/InputMethodLocator
+++sun/awt/im/InputMethodManager
+++sun/awt/image/BufImgSurfaceData
+++sun/awt/image/BufImgSurfaceData$ICMColorData
+++sun/awt/image/BufImgSurfaceManager
+++sun/awt/image/BufferedImageGraphicsConfig
+++sun/awt/image/ByteComponentRaster
+++sun/awt/image/ByteInterleavedRaster
+++sun/awt/image/BytePackedRaster
+++sun/awt/image/FetcherInfo
+++sun/awt/image/GifFrame
+++sun/awt/image/GifImageDecoder
+++sun/awt/image/ImageConsumerQueue
+++sun/awt/image/ImageDecoder
+++sun/awt/image/ImageDecoder$1
+++sun/awt/image/ImageFetchable
+++sun/awt/image/ImageFetcher
+++sun/awt/image/ImageFetcher$1
+++sun/awt/image/ImageRepresentation
+++sun/awt/image/ImageWatched
+++sun/awt/image/ImageWatched$Link
+++sun/awt/image/ImageWatched$WeakLink
+++sun/awt/image/InputStreamImageSource
+++sun/awt/image/IntegerComponentRaster
+++sun/awt/image/IntegerInterleavedRaster
+++sun/awt/image/NativeLibLoader
+++sun/awt/image/NativeLibLoader$1
+++sun/awt/image/OffScreenImage
+++sun/awt/image/PNGFilterInputStream
+++sun/awt/image/PNGImageDecoder
+++sun/awt/image/PixelConverter
+++sun/awt/image/PixelConverter$Argb
+++sun/awt/image/PixelConverter$ArgbBm
+++sun/awt/image/PixelConverter$ArgbPre
+++sun/awt/image/PixelConverter$Bgrx
+++sun/awt/image/PixelConverter$ByteGray
+++sun/awt/image/PixelConverter$Rgba
+++sun/awt/image/PixelConverter$RgbaPre
+++sun/awt/image/PixelConverter$Rgbx
+++sun/awt/image/PixelConverter$Ushort4444Argb
+++sun/awt/image/PixelConverter$Ushort555Rgb
+++sun/awt/image/PixelConverter$Ushort555Rgbx
+++sun/awt/image/PixelConverter$Ushort565Rgb
+++sun/awt/image/PixelConverter$UshortGray
+++sun/awt/image/PixelConverter$Xbgr
+++sun/awt/image/PixelConverter$Xrgb
+++sun/awt/image/SunVolatileImage
+++sun/awt/image/SunWritableRaster
+++sun/awt/image/SunWritableRaster$DataStealer
+++sun/awt/image/SurfaceManager
+++sun/awt/image/SurfaceManager$ImageAccessor
+++sun/awt/image/SurfaceManager$ProxiedGraphicsConfig
+++sun/awt/image/ToolkitImage
+++sun/awt/image/URLImageSource
+++sun/awt/image/VolatileSurfaceManager
+++sun/awt/motif/MFontConfiguration
+++sun/awt/resources/awt
+++sun/awt/util/IdentityArrayList
+++sun/dc/DuctusRenderingEngine
+++sun/dc/path/PathConsumer
+++sun/dc/pr/PathDasher
+++sun/dc/pr/PathDasher$1
+++sun/dc/pr/PathStroker
+++sun/dc/pr/PathStroker$1
+++sun/font/AttributeValues
+++sun/font/CMap
+++sun/font/CMap$CMapFormat12
+++sun/font/CMap$NullCMapClass
+++sun/font/CharToGlyphMapper
+++sun/font/CompositeFont
+++sun/font/CompositeFontDescriptor
+++sun/font/CompositeGlyphMapper
+++sun/font/CompositeStrike
+++sun/font/CoreMetrics
+++sun/font/EAttribute
+++sun/font/FcFontConfiguration
+++sun/font/FileFont
+++sun/font/FileFontStrike
+++sun/font/Font2D
+++sun/font/Font2DHandle
+++sun/font/FontAccess
+++sun/font/FontConfigManager
+++sun/font/FontConfigManager$FcCompFont
+++sun/font/FontConfigManager$FontConfigFont
+++sun/font/FontConfigManager$FontConfigInfo
+++sun/font/FontDesignMetrics
+++sun/font/FontDesignMetrics$KeyReference
+++sun/font/FontDesignMetrics$MetricsKey
+++sun/font/FontFamily
+++sun/font/FontLineMetrics
+++sun/font/FontManager
+++sun/font/FontManagerFactory
+++sun/font/FontManagerFactory$1
+++sun/font/FontManagerForSGE
+++sun/font/FontManagerNativeLibrary
+++sun/font/FontManagerNativeLibrary$1
+++sun/font/FontScaler
+++sun/font/FontStrike
+++sun/font/FontStrikeDesc
+++sun/font/FontStrikeDisposer
+++sun/font/FontUtilities
+++sun/font/FontUtilities$1
+++sun/font/GlyphList
+++sun/font/PhysicalFont
+++sun/font/PhysicalStrike
+++sun/font/StandardGlyphVector
+++sun/font/StandardGlyphVector$GlyphStrike
+++sun/font/StrikeCache
+++sun/font/StrikeCache$1
+++sun/font/StrikeCache$DisposableStrike
+++sun/font/StrikeCache$SoftDisposerRef
+++sun/font/StrikeMetrics
+++sun/font/SunFontManager
+++sun/font/SunFontManager$1
+++sun/font/SunFontManager$11
+++sun/font/SunFontManager$2
+++sun/font/SunFontManager$3
+++sun/font/SunFontManager$FontRegistrationInfo
+++sun/font/SunFontManager$T1Filter
+++sun/font/SunFontManager$TTFilter
+++sun/font/T2KFontScaler
+++sun/font/T2KFontScaler$1
+++sun/font/TrueTypeFont
+++sun/font/TrueTypeFont$1
+++sun/font/TrueTypeFont$DirectoryEntry
+++sun/font/TrueTypeFont$TTDisposerRecord
+++sun/font/TrueTypeGlyphMapper
+++sun/font/Type1Font
+++sun/font/Type1Font$1
+++sun/font/X11TextRenderer
+++sun/java2d/BackBufferCapsProvider
+++sun/java2d/DefaultDisposerRecord
+++sun/java2d/DestSurfaceProvider
+++sun/java2d/Disposer
+++sun/java2d/Disposer$1
+++sun/java2d/Disposer$2
+++sun/java2d/Disposer$PollDisposable
+++sun/java2d/DisposerRecord
+++sun/java2d/DisposerTarget
+++sun/java2d/FontSupport
+++sun/java2d/InvalidPipeException
+++sun/java2d/NullSurfaceData
+++sun/java2d/StateTrackable
+++sun/java2d/StateTrackable$State
+++sun/java2d/StateTrackableDelegate
+++sun/java2d/StateTrackableDelegate$2
+++sun/java2d/SunGraphics2D
+++sun/java2d/SunGraphicsEnvironment
+++sun/java2d/SunGraphicsEnvironment$1
+++sun/java2d/Surface
+++sun/java2d/SurfaceData
+++sun/java2d/SurfaceData$PixelToPgramLoopConverter
+++sun/java2d/SurfaceData$PixelToShapeLoopConverter
+++sun/java2d/SurfaceManagerFactory
+++sun/java2d/UnixSurfaceManagerFactory
+++sun/java2d/cmm/CMSManager
+++sun/java2d/cmm/ProfileActivator
+++sun/java2d/cmm/ProfileDeferralInfo
+++sun/java2d/cmm/ProfileDeferralMgr
+++sun/java2d/loops/Blit
+++sun/java2d/loops/BlitBg
+++sun/java2d/loops/CompositeType
+++sun/java2d/loops/CustomComponent
+++sun/java2d/loops/DrawGlyphList
+++sun/java2d/loops/DrawGlyphListAA
+++sun/java2d/loops/DrawGlyphListLCD
+++sun/java2d/loops/DrawLine
+++sun/java2d/loops/DrawParallelogram
+++sun/java2d/loops/DrawPath
+++sun/java2d/loops/DrawPolygons
+++sun/java2d/loops/DrawRect
+++sun/java2d/loops/FillParallelogram
+++sun/java2d/loops/FillPath
+++sun/java2d/loops/FillRect
+++sun/java2d/loops/FillSpans
+++sun/java2d/loops/FontInfo
+++sun/java2d/loops/GeneralRenderer
+++sun/java2d/loops/GraphicsPrimitive
+++sun/java2d/loops/GraphicsPrimitiveMgr
+++sun/java2d/loops/GraphicsPrimitiveMgr$1
+++sun/java2d/loops/GraphicsPrimitiveMgr$2
+++sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec
+++sun/java2d/loops/GraphicsPrimitiveProxy
+++sun/java2d/loops/MaskBlit
+++sun/java2d/loops/MaskFill
+++sun/java2d/loops/RenderCache
+++sun/java2d/loops/RenderCache$Entry
+++sun/java2d/loops/RenderLoops
+++sun/java2d/loops/ScaledBlit
+++sun/java2d/loops/SurfaceType
+++sun/java2d/loops/TransformHelper
+++sun/java2d/loops/XORComposite
+++sun/java2d/opengl/GLXGraphicsConfig
+++sun/java2d/opengl/OGLGraphicsConfig
+++sun/java2d/pipe/AAShapePipe
+++sun/java2d/pipe/AATextRenderer
+++sun/java2d/pipe/AlphaColorPipe
+++sun/java2d/pipe/AlphaPaintPipe
+++sun/java2d/pipe/CompositePipe
+++sun/java2d/pipe/DrawImage
+++sun/java2d/pipe/DrawImagePipe
+++sun/java2d/pipe/GeneralCompositePipe
+++sun/java2d/pipe/GlyphListLoopPipe
+++sun/java2d/pipe/GlyphListPipe
+++sun/java2d/pipe/LCDTextRenderer
+++sun/java2d/pipe/LoopBasedPipe
+++sun/java2d/pipe/LoopPipe
+++sun/java2d/pipe/NullPipe
+++sun/java2d/pipe/OutlineTextRenderer
+++sun/java2d/pipe/ParallelogramPipe
+++sun/java2d/pipe/PixelDrawPipe
+++sun/java2d/pipe/PixelFillPipe
+++sun/java2d/pipe/PixelToParallelogramConverter
+++sun/java2d/pipe/PixelToShapeConverter
+++sun/java2d/pipe/Region
+++sun/java2d/pipe/Region$ImmutableRegion
+++sun/java2d/pipe/RegionIterator
+++sun/java2d/pipe/RenderingEngine
+++sun/java2d/pipe/RenderingEngine$1
+++sun/java2d/pipe/ShapeDrawPipe
+++sun/java2d/pipe/ShapeSpanIterator
+++sun/java2d/pipe/SolidTextRenderer
+++sun/java2d/pipe/SpanClipRenderer
+++sun/java2d/pipe/SpanIterator
+++sun/java2d/pipe/SpanShapeRenderer
+++sun/java2d/pipe/SpanShapeRenderer$Composite
+++sun/java2d/pipe/TextPipe
+++sun/java2d/pipe/TextRenderer
+++sun/java2d/pipe/ValidatePipe
+++sun/java2d/pipe/hw/AccelGraphicsConfig
+++sun/java2d/pipe/hw/BufferedContextProvider
+++sun/java2d/x11/X11Renderer
+++sun/java2d/x11/X11SurfaceData
+++sun/java2d/x11/X11SurfaceData$LazyPipe
+++sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData
+++sun/java2d/x11/X11VolatileSurfaceManager
+++sun/java2d/x11/XSurfaceData
+++sun/java2d/xr/XRGraphicsConfig
+++sun/launcher/LauncherHelper
+++sun/launcher/LauncherHelper$FXHelper
+++sun/misc/ASCIICaseInsensitiveComparator
+++sun/misc/Cleaner
+++sun/misc/CompoundEnumeration
+++sun/misc/ExtensionDependency
+++sun/misc/FDBigInteger
+++sun/misc/FileURLMapper
+++sun/misc/FloatingDecimal
+++sun/misc/FloatingDecimal$1
+++sun/misc/FloatingDecimal$ASCIIToBinaryBuffer
+++sun/misc/FloatingDecimal$ASCIIToBinaryConverter
+++sun/misc/FloatingDecimal$BinaryToASCIIBuffer
+++sun/misc/FloatingDecimal$BinaryToASCIIConverter
+++sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer
+++sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer
+++sun/misc/IOUtils
+++sun/misc/JarIndex
+++sun/misc/JavaAWTAccess
+++sun/misc/JavaIOFileDescriptorAccess
+++sun/misc/JavaLangAccess
+++sun/misc/JavaNetAccess
+++sun/misc/JavaNioAccess
+++sun/misc/JavaSecurityAccess
+++sun/misc/JavaSecurityProtectionDomainAccess
+++sun/misc/JavaUtilJarAccess
+++sun/misc/JavaUtilZipFileAccess
+++sun/misc/Launcher
+++sun/misc/Launcher$AppClassLoader
+++sun/misc/Launcher$AppClassLoader$1
+++sun/misc/Launcher$BootClassPathHolder
+++sun/misc/Launcher$BootClassPathHolder$1
+++sun/misc/Launcher$ExtClassLoader
+++sun/misc/Launcher$ExtClassLoader$1
+++sun/misc/Launcher$Factory
+++sun/misc/MetaIndex
+++sun/misc/NativeSignalHandler
+++sun/misc/OSEnvironment
+++sun/misc/Perf
+++sun/misc/Perf$GetPerfAction
+++sun/misc/PerfCounter
+++sun/misc/PerfCounter$CoreCounters
+++sun/misc/PerformanceLogger
+++sun/misc/PerformanceLogger$TimeData
+++sun/misc/PostVMInitHook
+++sun/misc/Resource
+++sun/misc/SharedSecrets
+++sun/misc/Signal
+++sun/misc/SignalHandler
+++sun/misc/SoftCache
+++sun/misc/SoftCache$ValueCell
+++sun/misc/URLClassPath
+++sun/misc/URLClassPath$1
+++sun/misc/URLClassPath$2
+++sun/misc/URLClassPath$3
+++sun/misc/URLClassPath$FileLoader
+++sun/misc/URLClassPath$JarLoader
+++sun/misc/URLClassPath$JarLoader$1
+++sun/misc/URLClassPath$JarLoader$2
+++sun/misc/URLClassPath$Loader
+++sun/misc/Unsafe
+++sun/misc/VM
+++sun/misc/Version
+++sun/net/DefaultProgressMeteringPolicy
+++sun/net/InetAddressCachePolicy
+++sun/net/InetAddressCachePolicy$1
+++sun/net/InetAddressCachePolicy$2
+++sun/net/NetHooks
+++sun/net/NetHooks$Provider
+++sun/net/NetProperties
+++sun/net/NetProperties$1
+++sun/net/ProgressMeteringPolicy
+++sun/net/ProgressMonitor
+++sun/net/ResourceManager
+++sun/net/sdp/SdpProvider
+++sun/net/spi/DefaultProxySelector
+++sun/net/spi/DefaultProxySelector$1
+++sun/net/spi/DefaultProxySelector$3
+++sun/net/spi/DefaultProxySelector$NonProxyInfo
+++sun/net/spi/nameservice/NameService
+++sun/net/util/IPAddressUtil
+++sun/net/util/URLUtil
+++sun/net/www/MessageHeader
+++sun/net/www/MimeEntry
+++sun/net/www/MimeTable
+++sun/net/www/MimeTable$1
+++sun/net/www/MimeTable$DefaultInstanceHolder
+++sun/net/www/MimeTable$DefaultInstanceHolder$1
+++sun/net/www/ParseUtil
+++sun/net/www/URLConnection
+++sun/net/www/protocol/file/FileURLConnection
+++sun/net/www/protocol/file/Handler
+++sun/net/www/protocol/http/Handler
+++sun/net/www/protocol/jar/Handler
+++sun/net/www/protocol/jar/JarFileFactory
+++sun/net/www/protocol/jar/JarURLConnection
+++sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream
+++sun/net/www/protocol/jar/URLJarFile
+++sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController
+++sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry
+++sun/nio/ByteBuffered
+++sun/nio/ch/DirectBuffer
+++sun/nio/ch/FileChannelImpl
+++sun/nio/ch/FileChannelImpl$Unmapper
+++sun/nio/ch/FileDispatcher
+++sun/nio/ch/FileDispatcherImpl
+++sun/nio/ch/IOStatus
+++sun/nio/ch/IOUtil
+++sun/nio/ch/IOUtil$1
+++sun/nio/ch/Interruptible
+++sun/nio/ch/NativeDispatcher
+++sun/nio/ch/NativeThread
+++sun/nio/ch/NativeThreadSet
+++sun/nio/ch/Util
+++sun/nio/ch/Util$1
+++sun/nio/ch/Util$4
+++sun/nio/ch/Util$BufferCache
+++sun/nio/cs/ArrayDecoder
+++sun/nio/cs/ArrayEncoder
+++sun/nio/cs/FastCharsetProvider
+++sun/nio/cs/HistoricallyNamedCharset
+++sun/nio/cs/ISO_8859_1
+++sun/nio/cs/ISO_8859_1$Encoder
+++sun/nio/cs/StandardCharsets
+++sun/nio/cs/StandardCharsets$Aliases
+++sun/nio/cs/StandardCharsets$Cache
+++sun/nio/cs/StandardCharsets$Classes
+++sun/nio/cs/StreamDecoder
+++sun/nio/cs/StreamEncoder
+++sun/nio/cs/Surrogate
+++sun/nio/cs/Surrogate$Parser
+++sun/nio/cs/US_ASCII
+++sun/nio/cs/US_ASCII$Decoder
+++sun/nio/cs/UTF_16
+++sun/nio/cs/UTF_16$Decoder
+++sun/nio/cs/UTF_16BE
+++sun/nio/cs/UTF_16LE
+++sun/nio/cs/UTF_8
+++sun/nio/cs/UTF_8$Decoder
+++sun/nio/cs/UTF_8$Encoder
+++sun/nio/cs/Unicode
+++sun/nio/cs/UnicodeDecoder
+++sun/print/PrinterGraphicsConfig
+++sun/reflect/AccessorGenerator
+++sun/reflect/BootstrapConstructorAccessorImpl
+++sun/reflect/ByteVector
+++sun/reflect/ByteVectorFactory
+++sun/reflect/ByteVectorImpl
+++sun/reflect/CallerSensitive
+++sun/reflect/ClassDefiner
+++sun/reflect/ClassDefiner$1
+++sun/reflect/ClassFileAssembler
+++sun/reflect/ClassFileConstants
+++sun/reflect/ConstantPool
+++sun/reflect/ConstructorAccessor
+++sun/reflect/ConstructorAccessorImpl
+++sun/reflect/DelegatingClassLoader
+++sun/reflect/DelegatingConstructorAccessorImpl
+++sun/reflect/DelegatingMethodAccessorImpl
+++sun/reflect/FieldAccessor
+++sun/reflect/FieldAccessorImpl
+++sun/reflect/Label
+++sun/reflect/Label$PatchInfo
+++sun/reflect/LangReflectAccess
+++sun/reflect/MagicAccessorImpl
+++sun/reflect/MethodAccessor
+++sun/reflect/MethodAccessorGenerator
+++sun/reflect/MethodAccessorGenerator$1
+++sun/reflect/MethodAccessorImpl
+++sun/reflect/NativeConstructorAccessorImpl
+++sun/reflect/NativeMethodAccessorImpl
+++sun/reflect/Reflection
+++sun/reflect/ReflectionFactory
+++sun/reflect/ReflectionFactory$1
+++sun/reflect/ReflectionFactory$GetReflectionFactoryAction
+++sun/reflect/SerializationConstructorAccessorImpl
+++sun/reflect/UTF8
+++sun/reflect/UnsafeFieldAccessorFactory
+++sun/reflect/UnsafeFieldAccessorImpl
+++sun/reflect/UnsafeObjectFieldAccessorImpl
+++sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl
+++sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl
+++sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl
+++sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl
+++sun/reflect/UnsafeStaticFieldAccessorImpl
+++sun/reflect/annotation/AnnotationType
+++sun/reflect/generics/repository/AbstractRepository
+++sun/reflect/generics/repository/ClassRepository
+++sun/reflect/generics/repository/GenericDeclRepository
+++sun/reflect/misc/MethodUtil
+++sun/reflect/misc/MethodUtil$1
+++sun/reflect/misc/ReflectUtil
+++sun/security/action/GetBooleanAction
+++sun/security/action/GetIntegerAction
+++sun/security/action/GetPropertyAction
+++sun/security/jca/GetInstance
+++sun/security/jca/GetInstance$Instance
+++sun/security/jca/ProviderConfig
+++sun/security/jca/ProviderConfig$2
+++sun/security/jca/ProviderList
+++sun/security/jca/ProviderList$1
+++sun/security/jca/ProviderList$2
+++sun/security/jca/ProviderList$3
+++sun/security/jca/ProviderList$ServiceList
+++sun/security/jca/ProviderList$ServiceList$1
+++sun/security/jca/Providers
+++sun/security/jca/ServiceId
+++sun/security/provider/ByteArrayAccess
+++sun/security/provider/DSA
+++sun/security/provider/DSA$LegacyDSA
+++sun/security/provider/DSA$SHA1withDSA
+++sun/security/provider/DSAParameters
+++sun/security/provider/DSAPublicKey
+++sun/security/provider/DigestBase
+++sun/security/provider/NativePRNG
+++sun/security/provider/NativePRNG$1
+++sun/security/provider/NativePRNG$2
+++sun/security/provider/NativePRNG$Blocking
+++sun/security/provider/NativePRNG$NonBlocking
+++sun/security/provider/NativePRNG$RandomIO
+++sun/security/provider/NativePRNG$Variant
+++sun/security/provider/SHA
+++sun/security/provider/Sun
+++sun/security/provider/SunEntries
+++sun/security/provider/SunEntries$1
+++sun/security/util/BitArray
+++sun/security/util/ByteArrayLexOrder
+++sun/security/util/Debug
+++sun/security/util/DerEncoder
+++sun/security/util/DerIndefLenConverter
+++sun/security/util/DerInputBuffer
+++sun/security/util/DerInputStream
+++sun/security/util/DerOutputStream
+++sun/security/util/DerValue
+++sun/security/util/ManifestEntryVerifier
+++sun/security/util/ObjectIdentifier
+++sun/security/util/SignatureFileVerifier
+++sun/security/x509/AlgorithmId
+++sun/security/x509/X509Key
+++sun/swing/DefaultLookup
+++sun/swing/ImageIconUIResource
+++sun/swing/JLightweightFrame
+++sun/swing/MenuItemLayoutHelper
+++sun/swing/MenuItemLayoutHelper$ColumnAlignment
+++sun/swing/MenuItemLayoutHelper$LayoutResult
+++sun/swing/MenuItemLayoutHelper$RectSize
+++sun/swing/PrintColorUIResource
+++sun/swing/StringUIClientPropertyKey
+++sun/swing/SwingAccessor
+++sun/swing/SwingAccessor$JTextComponentAccessor
+++sun/swing/SwingLazyValue
+++sun/swing/SwingLazyValue$1
+++sun/swing/SwingUtilities2
+++sun/swing/SwingUtilities2$2
+++sun/swing/SwingUtilities2$AATextInfo
+++sun/swing/SwingUtilities2$LSBCacheEntry
+++sun/swing/UIAction
+++sun/swing/UIClientPropertyKey
+++sun/swing/table/DefaultTableCellHeaderRenderer
+++sun/swing/table/DefaultTableCellHeaderRenderer$EmptyIcon
+++sun/text/ComposedCharIter
+++sun/text/IntHashtable
+++sun/text/UCompactIntArray
+++sun/text/normalizer/CharTrie
+++sun/text/normalizer/CharTrie$FriendAgent
+++sun/text/normalizer/ICUBinary
+++sun/text/normalizer/ICUBinary$Authenticate
+++sun/text/normalizer/ICUData
+++sun/text/normalizer/IntTrie
+++sun/text/normalizer/NormalizerDataReader
+++sun/text/normalizer/NormalizerImpl
+++sun/text/normalizer/NormalizerImpl$AuxTrieImpl
+++sun/text/normalizer/NormalizerImpl$DecomposeArgs
+++sun/text/normalizer/NormalizerImpl$FCDTrieImpl
+++sun/text/normalizer/NormalizerImpl$NormTrieImpl
+++sun/text/normalizer/Trie
+++sun/text/normalizer/Trie$DataManipulate
+++sun/text/normalizer/UTF16
+++sun/text/normalizer/UnicodeMatcher
+++sun/text/normalizer/UnicodeSet
+++sun/text/resources/CollationData
+++sun/text/resources/FormatData
+++sun/text/resources/en/FormatData_en
+++sun/text/resources/en/FormatData_en_US
+++sun/util/CoreResourceBundleControl
+++sun/util/PreHashedMap
+++sun/util/ResourceBundleEnumeration
+++sun/util/calendar/AbstractCalendar
+++sun/util/calendar/BaseCalendar
+++sun/util/calendar/BaseCalendar$Date
+++sun/util/calendar/CalendarDate
+++sun/util/calendar/CalendarSystem
+++sun/util/calendar/CalendarUtils
+++sun/util/calendar/Gregorian
+++sun/util/calendar/Gregorian$Date
+++sun/util/calendar/ZoneInfo
+++sun/util/calendar/ZoneInfoFile
+++sun/util/calendar/ZoneInfoFile$1
+++sun/util/calendar/ZoneInfoFile$Checksum
+++sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule
+++sun/util/locale/BaseLocale
+++sun/util/locale/BaseLocale$Cache
+++sun/util/locale/BaseLocale$Key
+++sun/util/locale/LanguageTag
+++sun/util/locale/LocaleObjectCache
+++sun/util/locale/LocaleObjectCache$CacheEntry
+++sun/util/locale/LocaleUtils
+++sun/util/locale/provider/AuxLocaleProviderAdapter
+++sun/util/locale/provider/AuxLocaleProviderAdapter$NullProvider
+++sun/util/locale/provider/AvailableLanguageTags
+++sun/util/locale/provider/CalendarDataProviderImpl
+++sun/util/locale/provider/CalendarDataUtility
+++sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter
+++sun/util/locale/provider/CalendarProviderImpl
+++sun/util/locale/provider/CollatorProviderImpl
+++sun/util/locale/provider/CurrencyNameProviderImpl
+++sun/util/locale/provider/DateFormatSymbolsProviderImpl
+++sun/util/locale/provider/DecimalFormatSymbolsProviderImpl
+++sun/util/locale/provider/JRELocaleProviderAdapter
+++sun/util/locale/provider/JRELocaleProviderAdapter$1
+++sun/util/locale/provider/LocaleDataMetaInfo
+++sun/util/locale/provider/LocaleProviderAdapter
+++sun/util/locale/provider/LocaleProviderAdapter$1
+++sun/util/locale/provider/LocaleProviderAdapter$Type
+++sun/util/locale/provider/LocaleResources
+++sun/util/locale/provider/LocaleResources$ResourceReference
+++sun/util/locale/provider/LocaleServiceProviderPool
+++sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter
+++sun/util/locale/provider/NumberFormatProviderImpl
+++sun/util/locale/provider/ResourceBundleBasedAdapter
+++sun/util/locale/provider/SPILocaleProviderAdapter
+++sun/util/locale/provider/SPILocaleProviderAdapter$1
+++sun/util/locale/provider/TimeZoneNameProviderImpl
+++sun/util/locale/provider/TimeZoneNameUtility
+++sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter
+++sun/util/logging/LoggingProxy
+++sun/util/logging/LoggingSupport
+++sun/util/logging/LoggingSupport$1
+++sun/util/logging/LoggingSupport$2
+++sun/util/logging/PlatformLogger
+++sun/util/logging/PlatformLogger$1
+++sun/util/logging/PlatformLogger$DefaultLoggerProxy
+++sun/util/logging/PlatformLogger$JavaLoggerProxy
+++sun/util/logging/PlatformLogger$Level
+++sun/util/logging/PlatformLogger$LoggerProxy
+++sun/util/logging/resources/logging
+++sun/util/resources/CalendarData
+++sun/util/resources/CurrencyNames
+++sun/util/resources/LocaleData
+++sun/util/resources/LocaleData$1
+++sun/util/resources/LocaleData$LocaleDataResourceBundleControl
+++sun/util/resources/LocaleNamesBundle
+++sun/util/resources/OpenListResourceBundle
+++sun/util/resources/ParallelListResourceBundle
+++sun/util/resources/ParallelListResourceBundle$KeySet
+++sun/util/resources/TimeZoneNames
+++sun/util/resources/TimeZoneNamesBundle
+++sun/util/resources/en/CalendarData_en
+++sun/util/resources/en/CurrencyNames_en_US
+++sun/util/resources/en/TimeZoneNames_en
+++sun/util/spi/CalendarProvider
+++# e4fe875988768cf5
++Index: b/jdk/make/Images.gmk
++===================================================================
++--- a/jdk/make/Images.gmk
+++++ b/jdk/make/Images.gmk
++@@ -236,11 +236,11 @@ ifeq ($(PROFILE), )
++ endif
++
++ JDK_LIB_FILES := $(NOT_JRE_LIB_FILES)
++-ifeq ($(OPENJDK_TARGET_OS), linux)
+++ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd),)
++ JDK_LIB_FILES += jexec
++ endif
++
++-ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris),) # If Linux or Solaris
+++ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd solaris),) # If Linux, BSD or Solaris
++ JDK_LIB_FILES += $(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX) \
++ $(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX)
++ endif
++@@ -383,7 +383,7 @@ ifneq ($(OPENJDK_TARGET_OS), windows)
++ # This variable is potentially overridden in the closed makefile.
++ MAN_SRC_BASEDIR ?= $(JDK_TOPDIR)/src
++
++- ifeq ($(OPENJDK_TARGET_OS), linux)
+++ ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd),)
++ MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc
++ MAN1_SUBDIR = man
++ endif
++@@ -447,7 +447,7 @@ ifneq ($(OPENJDK_TARGET_OS), windows)
++ $(install-file)
++ endif
++
++- ifeq ($(OPENJDK_TARGET_OS), linux)
+++ ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd),)
++ $(JRE_IMAGE_DIR)/man/ja:
++ $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@)
++ $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
++@@ -467,7 +467,7 @@ ifneq ($(OPENJDK_TARGET_OS), windows)
++ $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
++ endif
++
++- ifeq ($(OPENJDK_TARGET_OS), linux)
+++ ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd),)
++ JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
++ $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
++ $(JRE_IMAGE_DIR)/man/ja
++Index: b/jdk/make/mapfiles/libnio/mapfile-bsd
++===================================================================
++--- /dev/null
+++++ b/jdk/make/mapfiles/libnio/mapfile-bsd
++@@ -0,0 +1,190 @@
+++#
+++# Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
+++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+++#
+++# This code is free software; you can redistribute it and/or modify it
+++# under the terms of the GNU General Public License version 2 only, as
+++# published by the Free Software Foundation. Oracle designates this
+++# particular file as subject to the "Classpath" exception as provided
+++# by Oracle in the LICENSE file that accompanied this code.
+++#
+++# This code is distributed in the hope that it will be useful, but WITHOUT
+++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+++# version 2 for more details (a copy is included in the LICENSE file that
+++# accompanied this code).
+++#
+++# You should have received a copy of the GNU General Public License version
+++# 2 along with this work; if not, write to the Free Software Foundation,
+++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+++#
+++# Please 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_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_fdLimit;
+++ Java_sun_nio_ch_IOUtil_initIDs;
+++ Java_sun_nio_ch_IOUtil_iovMax;
+++ 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_Net_poll;
+++ Java_sun_nio_ch_Net_pollinValue;
+++ Java_sun_nio_ch_Net_polloutValue;
+++ Java_sun_nio_ch_Net_pollerrValue;
+++ Java_sun_nio_ch_Net_pollhupValue;
+++ Java_sun_nio_ch_Net_pollnvalValue;
+++ Java_sun_nio_ch_Net_pollconnValue;
+++ Java_sun_nio_ch_Net_isExclusiveBindAvailable;
+++ 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_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_UnixCopyFile_transfer;
+++ handleSocketError;
+++
+++ local:
+++ *;
+++};
++Index: b/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c
++===================================================================
++--- a/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c
+++++ b/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c
++@@ -45,8 +45,12 @@
++ #define stat64 stat
++ #define flock64 flock
++ #define off64_t off_t
+++#ifndef F_SETLKW64
++ #define F_SETLKW64 F_SETLKW
+++#endif
+++#ifndef F_SETLK64
++ #define F_SETLK64 F_SETLK
+++#endif
++
++ #define pread64 pread
++ #define pwrite64 pwrite
++Index: b/jdk/make/lib/Awt2dLibraries.gmk
++===================================================================
++--- a/jdk/make/lib/Awt2dLibraries.gmk
+++++ b/jdk/make/lib/Awt2dLibraries.gmk
++@@ -309,7 +309,7 @@ LIBAWT_FILES := \
++ debug_trace.c \
++ debug_util.c
++
++-ifneq (, $(filter $(OPENJDK_TARGET_OS), solaris linux aix))
+++ifneq (, $(filter $(OPENJDK_TARGET_OS), bsd solaris linux aix))
++ LIBAWT_FILES += awt_LoadLibrary.c initIDs.c img_colors.c
++ endif
++
++@@ -478,7 +478,7 @@
++ MAPFILE := $(LIBAWT_MAPFILE), \
++ LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_solaris := -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \
++- LDFLAGS_SUFFIX_linux := -ljvm $(LIBM) $(LIBDL) -ljava, \
+++ LDFLAGS_SUFFIX_bsd := -ljvm $(LIBM) $(LIBDL) -ljava, \
++ LDFLAGS_SUFFIX_solaris := -ljvm $(LIBM) $(LIBDL) -ljava -lc, \
++ LDFLAGS_SUFFIX_aix :=-ljvm $(LIBM) $(LIBDL) -ljava -lm,\
++ LDFLAGS_SUFFIX_macosx := -lmlib_image -ljvm $(LIBM) \
++@@ -637,7 +637,7 @@ ifeq ($(findstring $(OPENJDK_TARGET_OS),
++ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt_xawt/mapfile-vers, \
++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(X_LIBS) $(LIBAWT_XAWT_LDFLAGS), \
++- LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN) \
+++ LDFLAGS_bsd := $(call SET_SHARED_LIBRARY_ORIGIN) \
++ $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
++ LDFLAGS_solaris := -L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) \
++ -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) \
++@@ -687,7 +687,7 @@
++ LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
++ LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \
++ LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \
++- LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm -llcms2, \
+++ LDFLAGS_SUFFIX_bsd := -lm -lawt -ljava -ljvm -llcms2, \
++ LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm,\
++ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
++ RC_FLAGS := $(RC_FLAGS) \
++@@ -854,13 +854,13 @@ ifeq ($(BUILD_HEADLESS), true)
++ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt_headless/mapfile-vers, \
++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++- LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
+++ LDFLAGS_bsd := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \
++ LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..) \
++ -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) \
++ -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \
++ LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN)., \
++ REORDER := $(LIBAWT_HEADLESS_REORDER), \
++- LDFLAGS_SUFFIX_linux := -ljvm -lawt -lm $(LIBDL) -ljava, \
+++ LDFLAGS_SUFFIX_bsd := -ljvm -lawt -lm $(LIBDL) -ljava, \
++ LDFLAGS_SUFFIX_aix := -ljvm -lawt -ljava,\
++ LDFLAGS_SUFFIX_solaris := $(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc, \
++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_headless, \
++@@ -937,7 +937,7 @@ $(eval $(call SetupNativeCompilation,BUI
++ LDFLAGS := $(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \
++- LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
+++ LDFLAGS_SUFFIX_bsd := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \
++ LDFLAGS_SUFFIX_solaris := -lawt -lawt_headless -lc $(LIBM) $(LIBCXX) -ljava -ljvm, \
++ LDFLAGS_SUFFIX_aix := -lawt -lawt_headless $(LIBM) $(LIBCXX) -ljava -ljvm,\
++ LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \
++@@ -1088,7 +1088,7 @@ else # OPENJDK_TARGET_OS not windows
++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_solaris := -L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \
++- LDFLAGS_SUFFIX_linux := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \
+++ LDFLAGS_SUFFIX_bsd := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \
++ LDFLAGS_SUFFIX_aix := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX),\
++ LDFLAGS_SUFFIX_solaris := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender, \
++ LDFLAGS_SUFFIX_macosx := -Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \
++@@ -1144,7 +1144,7 @@ ifndef OPENJDK
++ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libkcms/mapfile-vers, \
++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++- LDFLAGS_SUFFIX_linux := -lc -lpthread, \
+++ LDFLAGS_SUFFIX_bsd := -lc -lpthread, \
++ LDFLAGS_SUFFIX_solaris := -lc, \
++ LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib version.lib, \
++ LDFLAGS_SUFFIX_posix := -lm -ljava -ljvm, \
++Index: b/jdk/src/share/lib/security/java.security-bsd
++===================================================================
++--- /dev/null
+++++ b/jdk/src/share/lib/security/java.security-bsd
++@@ -0,0 +1,569 @@
+++#
+++# This is the "master security properties file".
+++#
+++# An alternate java.security properties file may be specified
+++# from the command line via the system property
+++#
+++# -Djava.security.properties=<URL>
+++#
+++# This properties file appends to the master security properties file.
+++# If both properties files specify values for the same key, the value
+++# from the command-line properties file is selected, as it is the last
+++# one loaded.
+++#
+++# Also, if you specify
+++#
+++# -Djava.security.properties==<URL> (2 equals),
+++#
+++# then that properties file completely overrides the master security
+++# properties file.
+++#
+++# To disable the ability to specify an additional properties file from
+++# the command line, set the key security.overridePropertiesFile
+++# to false in the master security properties file. It is set to true
+++# by default.
+++
+++# In this file, various security properties are set for use by
+++# java.security classes. This is where users can statically register
+++# Cryptography Package Providers ("providers" for short). The term
+++# "provider" refers to a package or set of packages that supply a
+++# concrete implementation of a subset of the cryptography aspects of
+++# the Java Security API. A provider may, for example, implement one or
+++# more digital signature algorithms or message digest algorithms.
+++#
+++# Each provider must implement a subclass of the Provider class.
+++# To register a provider in this master security properties file,
+++# specify the Provider subclass name and priority in the format
+++#
+++# security.provider.<n>=<className>
+++#
+++# This declares a provider, and specifies its preference
+++# order n. The preference order is the order in which providers are
+++# searched for requested algorithms (when no specific provider is
+++# requested). The order is 1-based; 1 is the most preferred, followed
+++# by 2, and so on.
+++#
+++# <className> must specify the subclass of the Provider class whose
+++# constructor sets the values of various properties that are required
+++# for the Java Security API to look up the algorithms or other
+++# facilities implemented by the provider.
+++#
+++# There must be at least one provider specification in java.security.
+++# There is a default provider that comes standard with the JDK. It
+++# is called the "SUN" provider, and its Provider subclass
+++# named Sun appears in the sun.security.provider package. Thus, the
+++# "SUN" provider is registered via the following:
+++#
+++# security.provider.1=sun.security.provider.Sun
+++#
+++# (The number 1 is used for the default provider.)
+++#
+++# Note: Providers can be dynamically registered instead by calls to
+++# either the addProvider or insertProviderAt method in the Security
+++# class.
+++
+++#
+++# List of providers and their preference orders (see above):
+++#
+++security.provider.1=sun.security.provider.Sun
+++security.provider.2=sun.security.rsa.SunRsaSign
+++security.provider.3=sun.security.ec.SunEC
+++security.provider.4=com.sun.net.ssl.internal.ssl.Provider
+++security.provider.5=com.sun.crypto.provider.SunJCE
+++security.provider.6=sun.security.jgss.SunProvider
+++security.provider.7=com.sun.security.sasl.Provider
+++security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
+++security.provider.9=sun.security.smartcardio.SunPCSC
+++
+++#
+++# Sun Provider SecureRandom seed source.
+++#
+++# Select the primary source of seed data for the "SHA1PRNG" and
+++# "NativePRNG" SecureRandom implementations in the "Sun" provider.
+++# (Other SecureRandom implementations might also use this property.)
+++#
+++# On Unix-like systems (for example, Solaris/Linux/MacOS), the
+++# "NativePRNG" and "SHA1PRNG" implementations obtains seed data from
+++# special device files such as file:/dev/random.
+++#
+++# On Windows systems, specifying the URLs "file:/dev/random" or
+++# "file:/dev/urandom" will enable the native Microsoft CryptoAPI seeding
+++# mechanism for SHA1PRNG.
+++#
+++# By default, an attempt is made to use the entropy gathering device
+++# specified by the "securerandom.source" Security property. If an
+++# exception occurs while accessing the specified URL:
+++#
+++# SHA1PRNG:
+++# the traditional system/thread activity algorithm will be used.
+++#
+++# NativePRNG:
+++# a default value of /dev/random will be used. If neither
+++# are available, the implementation will be disabled.
+++# "file" is the only currently supported protocol type.
+++#
+++# The entropy gathering device can also be specified with the System
+++# property "java.security.egd". For example:
+++#
+++# % java -Djava.security.egd=file:/dev/random MainClass
+++#
+++# Specifying this System property will override the
+++# "securerandom.source" Security property.
+++#
+++# In addition, if "file:/dev/random" or "file:/dev/urandom" is
+++# specified, the "NativePRNG" implementation will be more preferred than
+++# SHA1PRNG in the Sun provider.
+++#
+++securerandom.source=file:/dev/random
+++
+++#
+++# A list of known strong SecureRandom implementations.
+++#
+++# To help guide applications in selecting a suitable strong
+++# java.security.SecureRandom implementation, Java distributions should
+++# indicate a list of known strong implementations using the property.
+++#
+++# This is a comma-separated list of algorithm and/or algorithm:provider
+++# entries.
+++#
+++securerandom.strongAlgorithms=NativePRNGBlocking:SUN
+++
+++#
+++# Class to instantiate as the javax.security.auth.login.Configuration
+++# provider.
+++#
+++login.configuration.provider=sun.security.provider.ConfigFile
+++
+++#
+++# Default login configuration file
+++#
+++#login.config.url.1=file:${user.home}/.java.login.config
+++
+++#
+++# Class to instantiate as the system Policy. This is the name of the class
+++# that will be used as the Policy object.
+++#
+++policy.provider=sun.security.provider.PolicyFile
+++
+++# The default is to have a single system-wide policy file,
+++# and a policy file in the user's home directory.
+++policy.url.1=file:${java.home}/lib/security/java.policy
+++policy.url.2=file:${user.home}/.java.policy
+++
+++# whether or not we expand properties in the policy file
+++# if this is set to false, properties (${...}) will not be expanded in policy
+++# files.
+++policy.expandProperties=true
+++
+++# whether or not we allow an extra policy to be passed on the command line
+++# with -Djava.security.policy=somefile. Comment out this line to disable
+++# this feature.
+++policy.allowSystemProperty=true
+++
+++# whether or not we look into the IdentityScope for trusted Identities
+++# when encountering a 1.1 signed JAR file. If the identity is found
+++# and is trusted, we grant it AllPermission.
+++policy.ignoreIdentityScope=false
+++
+++#
+++# Default keystore type.
+++#
+++keystore.type=jks
+++
+++#
+++# Controls compatibility mode for the JKS keystore type.
+++#
+++# When set to 'true', the JKS keystore type supports loading
+++# keystore files in either JKS or PKCS12 format. When set to 'false'
+++# it supports loading only JKS keystore files.
+++#
+++keystore.type.compat=true
+++
+++#
+++# List of comma-separated packages that start with or equal this string
+++# will cause a security exception to be thrown when
+++# passed to checkPackageAccess unless the
+++# corresponding RuntimePermission ("accessClassInPackage."+package) has
+++# been granted.
+++package.access=sun.,\
+++ com.sun.xml.internal.,\
+++ com.sun.imageio.,\
+++ com.sun.istack.internal.,\
+++ com.sun.jmx.,\
+++ com.sun.media.sound.,\
+++ com.sun.naming.internal.,\
+++ com.sun.proxy.,\
+++ com.sun.corba.se.,\
+++ com.sun.org.apache.bcel.internal.,\
+++ com.sun.org.apache.regexp.internal.,\
+++ com.sun.org.apache.xerces.internal.,\
+++ com.sun.org.apache.xpath.internal.,\
+++ com.sun.org.apache.xalan.internal.extensions.,\
+++ com.sun.org.apache.xalan.internal.lib.,\
+++ com.sun.org.apache.xalan.internal.res.,\
+++ com.sun.org.apache.xalan.internal.templates.,\
+++ com.sun.org.apache.xalan.internal.utils.,\
+++ com.sun.org.apache.xalan.internal.xslt.,\
+++ com.sun.org.apache.xalan.internal.xsltc.cmdline.,\
+++ com.sun.org.apache.xalan.internal.xsltc.compiler.,\
+++ com.sun.org.apache.xalan.internal.xsltc.trax.,\
+++ com.sun.org.apache.xalan.internal.xsltc.util.,\
+++ com.sun.org.apache.xml.internal.res.,\
+++ com.sun.org.apache.xml.internal.security.,\
+++ com.sun.org.apache.xml.internal.serializer.utils.,\
+++ com.sun.org.apache.xml.internal.utils.,\
+++ com.sun.org.glassfish.,\
+++ com.oracle.xmlns.internal.,\
+++ com.oracle.webservices.internal.,\
+++ oracle.jrockit.jfr.,\
+++ org.jcp.xml.dsig.internal.,\
+++ jdk.internal.,\
+++ jdk.nashorn.internal.,\
+++ jdk.nashorn.tools.,\
+++ com.sun.activation.registries.
+++
+++#
+++# List of comma-separated packages that start with or equal this string
+++# will cause a security exception to be thrown when
+++# passed to checkPackageDefinition unless the
+++# corresponding RuntimePermission ("defineClassInPackage."+package) has
+++# been granted.
+++#
+++# by default, none of the class loaders supplied with the JDK call
+++# checkPackageDefinition.
+++#
+++package.definition=sun.,\
+++ com.sun.xml.internal.,\
+++ com.sun.imageio.,\
+++ com.sun.istack.internal.,\
+++ com.sun.jmx.,\
+++ com.sun.media.sound.,\
+++ com.sun.naming.internal.,\
+++ com.sun.proxy.,\
+++ com.sun.corba.se.,\
+++ com.sun.org.apache.bcel.internal.,\
+++ com.sun.org.apache.regexp.internal.,\
+++ com.sun.org.apache.xerces.internal.,\
+++ com.sun.org.apache.xpath.internal.,\
+++ com.sun.org.apache.xalan.internal.extensions.,\
+++ com.sun.org.apache.xalan.internal.lib.,\
+++ com.sun.org.apache.xalan.internal.res.,\
+++ com.sun.org.apache.xalan.internal.templates.,\
+++ com.sun.org.apache.xalan.internal.utils.,\
+++ com.sun.org.apache.xalan.internal.xslt.,\
+++ com.sun.org.apache.xalan.internal.xsltc.cmdline.,\
+++ com.sun.org.apache.xalan.internal.xsltc.compiler.,\
+++ com.sun.org.apache.xalan.internal.xsltc.trax.,\
+++ com.sun.org.apache.xalan.internal.xsltc.util.,\
+++ com.sun.org.apache.xml.internal.res.,\
+++ com.sun.org.apache.xml.internal.security.,\
+++ com.sun.org.apache.xml.internal.serializer.utils.,\
+++ com.sun.org.apache.xml.internal.utils.,\
+++ com.sun.org.glassfish.,\
+++ com.oracle.xmlns.internal.,\
+++ com.oracle.webservices.internal.,\
+++ oracle.jrockit.jfr.,\
+++ org.jcp.xml.dsig.internal.,\
+++ jdk.internal.,\
+++ jdk.nashorn.internal.,\
+++ jdk.nashorn.tools.,\
+++ com.sun.activation.registries.
+++
+++#
+++# Determines whether this properties file can be appended to
+++# or overridden on the command line via -Djava.security.properties
+++#
+++security.overridePropertiesFile=true
+++
+++#
+++# Determines the default key and trust manager factory algorithms for
+++# the javax.net.ssl package.
+++#
+++ssl.KeyManagerFactory.algorithm=SunX509
+++ssl.TrustManagerFactory.algorithm=PKIX
+++
+++#
+++# The Java-level namelookup cache policy for successful lookups:
+++#
+++# any negative value: caching forever
+++# any positive value: the number of seconds to cache an address for
+++# zero: do not cache
+++#
+++# default value is forever (FOREVER). For security reasons, this
+++# caching is made forever when a security manager is set. When a security
+++# manager is not set, the default behavior in this implementation
+++# is to cache for 30 seconds.
+++#
+++# NOTE: setting this to anything other than the default value can have
+++# serious security implications. Do not set it unless
+++# you are sure you are not exposed to DNS spoofing attack.
+++#
+++#networkaddress.cache.ttl=-1
+++
+++# The Java-level namelookup cache policy for failed lookups:
+++#
+++# any negative value: cache forever
+++# any positive value: the number of seconds to cache negative lookup results
+++# zero: do not cache
+++#
+++# In some Microsoft Windows networking environments that employ
+++# the WINS name service in addition to DNS, name service lookups
+++# that fail may take a noticeably long time to return (approx. 5 seconds).
+++# For this reason the default caching policy is to maintain these
+++# results for 10 seconds.
+++#
+++#
+++networkaddress.cache.negative.ttl=10
+++
+++#
+++# Properties to configure OCSP for certificate revocation checking
+++#
+++
+++# Enable OCSP
+++#
+++# By default, OCSP is not used for certificate revocation checking.
+++# This property enables the use of OCSP when set to the value "true".
+++#
+++# NOTE: SocketPermission is required to connect to an OCSP responder.
+++#
+++# Example,
+++# ocsp.enable=true
+++
+++#
+++# Location of the OCSP responder
+++#
+++# By default, the location of the OCSP responder is determined implicitly
+++# from the certificate being validated. This property explicitly specifies
+++# the location of the OCSP responder. The property is used when the
+++# Authority Information Access extension (defined in RFC 3280) is absent
+++# from the certificate or when it requires overriding.
+++#
+++# Example,
+++# ocsp.responderURL=http://ocsp.example.net:80
+++
+++#
+++# Subject name of the OCSP responder's certificate
+++#
+++# By default, the certificate of the OCSP responder is that of the issuer
+++# of the certificate being validated. This property identifies the certificate
+++# of the OCSP responder when the default does not apply. Its value is a string
+++# distinguished name (defined in RFC 2253) which identifies a certificate in
+++# the set of certificates supplied during cert path validation. In cases where
+++# the subject name alone is not sufficient to uniquely identify the certificate
+++# then both the "ocsp.responderCertIssuerName" and
+++# "ocsp.responderCertSerialNumber" properties must be used instead. When this
+++# property is set then those two properties are ignored.
+++#
+++# Example,
+++# ocsp.responderCertSubjectName="CN=OCSP Responder, O=XYZ Corp"
+++
+++#
+++# Issuer name of the OCSP responder's certificate
+++#
+++# By default, the certificate of the OCSP responder is that of the issuer
+++# of the certificate being validated. This property identifies the certificate
+++# of the OCSP responder when the default does not apply. Its value is a string
+++# distinguished name (defined in RFC 2253) which identifies a certificate in
+++# the set of certificates supplied during cert path validation. When this
+++# property is set then the "ocsp.responderCertSerialNumber" property must also
+++# be set. When the "ocsp.responderCertSubjectName" property is set then this
+++# property is ignored.
+++#
+++# Example,
+++# ocsp.responderCertIssuerName="CN=Enterprise CA, O=XYZ Corp"
+++
+++#
+++# Serial number of the OCSP responder's certificate
+++#
+++# By default, the certificate of the OCSP responder is that of the issuer
+++# of the certificate being validated. This property identifies the certificate
+++# of the OCSP responder when the default does not apply. Its value is a string
+++# of hexadecimal digits (colon or space separators may be present) which
+++# identifies a certificate in the set of certificates supplied during cert path
+++# validation. When this property is set then the "ocsp.responderCertIssuerName"
+++# property must also be set. When the "ocsp.responderCertSubjectName" property
+++# is set then this property is ignored.
+++#
+++# Example,
+++# ocsp.responderCertSerialNumber=2A:FF:00
+++
+++#
+++# Policy for failed Kerberos KDC lookups:
+++#
+++# When a KDC is unavailable (network error, service failure, etc), it is
+++# put inside a blacklist and accessed less often for future requests. The
+++# value (case-insensitive) for this policy can be:
+++#
+++# tryLast
+++# KDCs in the blacklist are always tried after those not on the list.
+++#
+++# tryLess[:max_retries,timeout]
+++# KDCs in the blacklist are still tried by their order in the configuration,
+++# but with smaller max_retries and timeout values. max_retries and timeout
+++# are optional numerical parameters (default 1 and 5000, which means once
+++# and 5 seconds). Please notes that if any of the values defined here is
+++# more than what is defined in krb5.conf, it will be ignored.
+++#
+++# Whenever a KDC is detected as available, it is removed from the blacklist.
+++# The blacklist is reset when krb5.conf is reloaded. You can add
+++# refreshKrb5Config=true to a JAAS configuration file so that krb5.conf is
+++# reloaded whenever a JAAS authentication is attempted.
+++#
+++# Example,
+++# krb5.kdc.bad.policy = tryLast
+++# krb5.kdc.bad.policy = tryLess:2,2000
+++krb5.kdc.bad.policy = tryLast
+++
+++# Algorithm restrictions for certification path (CertPath) processing
+++#
+++# In some environments, certain algorithms or key lengths may be undesirable
+++# for certification path building and validation. For example, "MD2" is
+++# generally no longer considered to be a secure hash algorithm. This section
+++# describes the mechanism for disabling algorithms based on algorithm name
+++# and/or key length. This includes algorithms used in certificates, as well
+++# as revocation information such as CRLs and signed OCSP Responses.
+++#
+++# The syntax of the disabled algorithm string is described as this Java
+++# BNF-style:
+++# DisabledAlgorithms:
+++# " DisabledAlgorithm { , DisabledAlgorithm } "
+++#
+++# DisabledAlgorithm:
+++# AlgorithmName [Constraint]
+++#
+++# AlgorithmName:
+++# (see below)
+++#
+++# Constraint:
+++# KeySizeConstraint
+++#
+++# KeySizeConstraint:
+++# keySize Operator DecimalInteger
+++#
+++# Operator:
+++# <= | < | == | != | >= | >
+++#
+++# DecimalInteger:
+++# DecimalDigits
+++#
+++# DecimalDigits:
+++# DecimalDigit {DecimalDigit}
+++#
+++# DecimalDigit: one of
+++# 1 2 3 4 5 6 7 8 9 0
+++#
+++# The "AlgorithmName" is the standard algorithm name of the disabled
+++# algorithm. See "Java Cryptography Architecture Standard Algorithm Name
+++# Documentation" for information about Standard Algorithm Names. Matching
+++# is performed using a case-insensitive sub-element matching rule. (For
+++# example, in "SHA1withECDSA" the sub-elements are "SHA1" for hashing and
+++# "ECDSA" for signatures.) If the assertion "AlgorithmName" is a
+++# sub-element of the certificate algorithm name, the algorithm will be
+++# rejected during certification path building and validation. For example,
+++# the assertion algorithm name "DSA" will disable all certificate algorithms
+++# that rely on DSA, such as NONEwithDSA, SHA1withDSA. However, the assertion
+++# will not disable algorithms related to "ECDSA".
+++#
+++# A "Constraint" provides further guidance for the algorithm being specified.
+++# The "KeySizeConstraint" requires a key of a valid size range if the
+++# "AlgorithmName" is of a key algorithm. The "DecimalInteger" indicates the
+++# key size specified in number of bits. For example, "RSA keySize <= 1024"
+++# indicates that any RSA key with key size less than or equal to 1024 bits
+++# should be disabled, and "RSA keySize < 1024, RSA keySize > 2048" indicates
+++# that any RSA key with key size less than 1024 or greater than 2048 should
+++# be disabled. Note that the "KeySizeConstraint" only makes sense to key
+++# algorithms.
+++#
+++# Note: This property is currently used by Oracle's PKIX implementation. It
+++# is not guaranteed to be examined and used by other implementations.
+++#
+++# Example:
+++# jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048
+++#
+++#
+++jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
+++
+++# Algorithm restrictions for Secure Socket Layer/Transport Layer Security
+++# (SSL/TLS) processing
+++#
+++# In some environments, certain algorithms or key lengths may be undesirable
+++# when using SSL/TLS. This section describes the mechanism for disabling
+++# algorithms during SSL/TLS security parameters negotiation, including
+++# protocol version negotiation, cipher suites selection, peer authentication
+++# and key exchange mechanisms.
+++#
+++# Disabled algorithms will not be negotiated for SSL/TLS connections, even
+++# if they are enabled explicitly in an application.
+++#
+++# For PKI-based peer authentication and key exchange mechanisms, this list
+++# of disabled algorithms will also be checked during certification path
+++# building and validation, including algorithms used in certificates, as
+++# well as revocation information such as CRLs and signed OCSP Responses.
+++# This is in addition to the jdk.certpath.disabledAlgorithms property above.
+++#
+++# See the specification of "jdk.certpath.disabledAlgorithms" for the
+++# syntax of the disabled algorithm string.
+++#
+++# Note: This property is currently used by Oracle's JSSE implementation.
+++# It is not guaranteed to be examined and used by other implementations.
+++#
+++# Example:
+++# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
+++jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 768
+++
+++# Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS)
+++# processing in JSSE implementation.
+++#
+++# In some environments, a certain algorithm may be undesirable but it
+++# cannot be disabled because of its use in legacy applications. Legacy
+++# algorithms may still be supported, but applications should not use them
+++# as the security strength of legacy algorithms are usually not strong enough
+++# in practice.
+++#
+++# During SSL/TLS security parameters negotiation, legacy algorithms will
+++# not be negotiated unless there are no other candidates.
+++#
+++# The syntax of the disabled algorithm string is described as this Java
+++# BNF-style:
+++# LegacyAlgorithms:
+++# " LegacyAlgorithm { , LegacyAlgorithm } "
+++#
+++# LegacyAlgorithm:
+++# AlgorithmName (standard JSSE algorithm name)
+++#
+++# See the specification of security property "jdk.certpath.disabledAlgorithms"
+++# for the syntax and description of the "AlgorithmName" notation.
+++#
+++# Per SSL/TLS specifications, cipher suites have the form:
+++# SSL_KeyExchangeAlg_WITH_CipherAlg_MacAlg
+++# or
+++# TLS_KeyExchangeAlg_WITH_CipherAlg_MacAlg
+++#
+++# For example, the cipher suite TLS_RSA_WITH_AES_128_CBC_SHA uses RSA as the
+++# key exchange algorithm, AES_128_CBC (128 bits AES cipher algorithm in CBC
+++# mode) as the cipher (encryption) algorithm, and SHA-1 as the message digest
+++# algorithm for HMAC.
+++#
+++# The LegacyAlgorithm can be one of the following standard algorithm names:
+++# 1. JSSE cipher suite name, e.g., TLS_RSA_WITH_AES_128_CBC_SHA
+++# 2. JSSE key exchange algorithm name, e.g., RSA
+++# 3. JSSE cipher (encryption) algorithm name, e.g., AES_128_CBC
+++# 4. JSSE message digest algorithm name, e.g., SHA
+++#
+++# See SSL/TLS specifications and "Java Cryptography Architecture Standard
+++# Algorithm Name Documentation" for information about the algorithm names.
+++#
+++# Note: This property is currently used by Oracle's JSSE implementation.
+++# It is not guaranteed to be examined and used by other implementations.
+++# There is no guarantee the property will continue to exist or be of the
+++# same syntax in future releases.
+++#
+++# Example:
+++# jdk.tls.legacyAlgorithms=DH_anon, DES_CBC, SSL_RSA_WITH_RC4_128_MD5
+++#
+++jdk.tls.legacyAlgorithms= \
+++ K_NULL, C_NULL, M_NULL, \
+++ DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_anon_EXPORT, DH_DSS_EXPORT, \
+++ DH_RSA_EXPORT, RSA_EXPORT, \
+++ DH_anon, ECDH_anon, \
+++ RC4_128, RC4_40, DES_CBC, DES40_CBC
++Index: b/jdk/src/solaris/classes/java/lang/UNIXProcess.java
++===================================================================
++--- a/jdk/src/solaris/classes/java/lang/UNIXProcess.java
+++++ b/jdk/src/solaris/classes/java/lang/UNIXProcess.java
++@@ -157,6 +157,7 @@ final class UNIXProcess extends Process
++ );
++
++ if (osName.equals("Linux")) { return LINUX; }
+++ if (osName.contains("GNU")) { return BSD; } /* glibc-based, but not Linux */
++ if (osName.contains("OS X")) { return BSD; }
++ if (osName.equals("SunOS")) { return SOLARIS; }
++ if (osName.equals("AIX")) { return AIX; }
++Index: b/jdk/make/lib/NetworkingLibraries.gmk
++===================================================================
++--- a/jdk/make/lib/NetworkingLibraries.gmk
+++++ b/jdk/make/lib/NetworkingLibraries.gmk
++@@ -42,7 +42,7 @@ ifneq ($(OPENJDK_TARGET_OS), linux)
++ LIBNET_EXCLUDE_FILES += linux_close.c
++ endif
++
++-ifneq ($(OPENJDK_TARGET_OS), macosx)
+++ifeq (,$(findstring $(OPENJDK_TARGET_OS), bsd macosx))
++ LIBNET_EXCLUDE_FILES += bsd_close.c
++ endif
++
++@@ -72,7 +72,7 @@ $(eval $(call SetupNativeCompilation,BUI
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_SUFFIX_macosx := -ljvm -ljava, \
++ LDFLAGS_SUFFIX_solaris := -ljvm -ljava -lnsl -lsocket $(LIBDL) -lc, \
++- LDFLAGS_SUFFIX_linux := $(LIBDL) -ljvm -lpthread -ljava, \
+++ LDFLAGS_SUFFIX_bsd := $(LIBDL) -ljvm -lpthread -ljava, \
++ LDFLAGS_SUFFIX_aix := $(LIBDL) -ljvm -ljava,\
++ LDFLAGS_SUFFIX_windows := ws2_32.lib jvm.lib secur32.lib iphlpapi.lib \
++ delayimp.lib $(WIN_JAVA_LIB) advapi32.lib \
--- /dev/null
--- /dev/null
++--- openjdk/hotspot/make/linux/makefiles/gcc.make.orig 2014-01-27 11:43:44.000000000 +0000
+++++ openjdk/hotspot/make/linux/makefiles/gcc.make 2014-01-30 15:51:23.507418895 +0000
++@@ -295,6 +295,7 @@
++
++ # Enable linker optimization
++ LFLAGS += -Xlinker -O1
+++LFLAGS += -Wl,-Bsymbolic-functions
++
++ ifeq ($(USE_CLANG),)
++ # If this is a --hash-style=gnu system, use --hash-style=both
++--- openjdk/hotspot/agent/src/os/linux/Makefile.orig 2014-01-30 15:51:23.507418895 +0000
+++++ openjdk/hotspot/agent/src/os/linux/Makefile 2014-01-30 15:52:15.307790918 +0000
++@@ -77,7 +77,7 @@
++ LFLAGS_LIBSA += $(LDFLAGS_HASH_STYLE)
++
++ $(LIBSA): $(ARCH) $(OBJS) mapfile
++- $(GCC) -shared $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS)
+++ $(GCC) -shared -Wl,-Bsymbolic-functions $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS)
++
++ test.o: test.c
++ $(GCC) -c -o test.o -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) test.c
++--- openjdk/jdk/make/common/Defs-linux.gmk.orig 2014-01-30 15:50:28.335021361 +0000
+++++ openjdk/jdk/make/common/Defs-linux.gmk 2014-01-30 15:51:23.507418895 +0000
++@@ -351,7 +351,7 @@
++
++ EXTRA_LIBS += -lc
++
++-LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker defs
+++LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker defs -Wl,-Bsymbolic-functions
++ LDFLAGS_COMMON += $(LDFLAGS_DEFS_OPTION)
++
++ #
--- /dev/null
--- /dev/null
++--- a/hotspot/agent/src/os/linux/Makefile
+++++ b/hotspot/agent/src/os/linux/Makefile
++@@ -80,7 +80,7 @@ LDFLAGS_NO_EXEC_STACK="-Wl,-z,noexecstac
++ LFLAGS_LIBSA += $(LDFLAGS_NO_EXEC_STACK)
++
++ $(LIBSA): $(ARCH) $(OBJS) mapfile
++- $(GCC) -shared $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS)
+++ $(GCC) -shared -Wl,-Bsymbolic-functions $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS)
++
++ test.o: test.c
++ $(GCC) -c -o test.o -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) test.c
++--- a/hotspot/make/linux/makefiles/gcc.make
+++++ b/hotspot/make/linux/makefiles/gcc.make
++@@ -293,6 +293,7 @@ endif
++
++ # Enable linker optimization
++ LFLAGS += -Xlinker -O1
+++LFLAGS += -Wl,-Bsymbolic-functions
++
++ ifeq ($(USE_CLANG),)
++ # If this is a --hash-style=gnu system, use --hash-style=both
--- /dev/null
--- /dev/null
++# DP: Fix libjavajpeg build using the system jpeg library.
++
++--- a/jdk/make/lib/Awt2dLibraries.gmk
+++++ b/jdk/make/lib/Awt2dLibraries.gmk
++@@ -731,7 +731,7 @@ endif
++ ifeq ($(USE_EXTERNAL_LIBJPEG), true)
++ LIBJPEG_LIBS := -ljpeg
++ BUILD_LIBJAVAJPEG_INCLUDE_FILES := \
++- imageIOJPEG.c \
+++ imageioJPEG.c \
++ jpegdecoder.c
++ BUILD_LIBJAVAJPEG_HEADERS :=
++ else
--- /dev/null
--- /dev/null
++--- a/jdk/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java
+++++ b/jdk/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java
++@@ -48,6 +48,7 @@ class PlatformPCSC {
++
++ private final static String PROP_NAME = "sun.security.smartcardio.library";
++
+++ private final static String LIB0 = "libpcsclite.so.1";
++ private final static String LIB1 = "/usr/$LIBISA/libpcsclite.so";
++ private final static String LIB2 = "/usr/local/$LIBISA/libpcsclite.so";
++ private final static String PCSC_FRAMEWORK = "/System/Library/Frameworks/PCSC.framework/Versions/Current/PCSC";
++@@ -104,22 +105,9 @@ class PlatformPCSC {
++ if (lib.length() != 0) {
++ return lib;
++ }
++- lib = expand(LIB1);
++- if (new File(lib).isFile()) {
++- // if LIB1 exists, use that
++- return lib;
++- }
++- lib = expand(LIB2);
++- if (new File(lib).isFile()) {
++- // if LIB2 exists, use that
++- return lib;
++- }
++- lib = PCSC_FRAMEWORK;
++- if (new File(lib).isFile()) {
++- // if PCSC.framework exists, use that
++- return lib;
++- }
++- throw new IOException("No PC/SC library found on this system");
+++ // let dlopen do the work
+++ lib = LIB0;
+++ return lib;
++ }
++
++ private static native void initialize(String libraryName);
--- /dev/null
--- /dev/null
++# DP: Fix build failures with -Wl,--as-needed, don't explicitly link with -lc
++
++--- a/jdk/make/CompileLaunchers.gmk
+++++ b/jdk/make/CompileLaunchers.gmk
++@@ -437,7 +437,7 @@ endif
++ # binary (at least on linux) which causes the size to differ between old and new build.
++ ifeq ($(USE_EXTERNAL_LIBZ), true)
++ UNPACKEXE_CFLAGS := -DSYSTEM_ZLIB
++- UNPACKEXE_ZIPOBJS := -lz
+++ UNPACKEXE_LIBS := -lz
++ else
++ UNPACKEXE_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib
++ UNPACKEXE_ZIPOBJS := $(JDK_OUTPUTDIR)/objs/libzip/zcrc32$(OBJ_SUFFIX) \
++@@ -493,9 +493,9 @@ $(eval $(call SetupNativeCompilation,BUI
++ LDFLAGS_posix := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
++ $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX)) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++- LDFLAGS_linux := -lc, \
+++ LDFLAGS_linux := , \
++ LDFLAGS_solaris := $(UNPACKEXE_LDFLAGS_solaris) -lc, \
++- LDFLAGS_SUFFIX := $(LIBCXX), \
+++ LDFLAGS_SUFFIX := $(UNPACKEXE_LIBS) $(LIBCXX), \
++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/unpackexe$(OUTPUT_SUBDIR), \
++ OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/unpackexe$(OUTPUT_SUBDIR), \
++ PROGRAM := unpack200, \
++--- a/jdk/make/lib/Awt2dLibraries.gmk
+++++ b/jdk/make/lib/Awt2dLibraries.gmk
++@@ -752,10 +752,10 @@ $(eval $(call SetupNativeCompilation,BUI
++ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
++ $(BUILD_LIBJAVAJPEG_HEADERS), \
++ MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \
++- LDFLAGS := $(LDFLAGS_JDKLIB) $(LIBJPEG_LIBS) \
+++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \
++- LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
+++ LDFLAGS_SUFFIX := $(LIBJPEG_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \
++ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
++ RC_FLAGS := $(RC_FLAGS) \
++ -D "JDK_FNAME=javajpeg.dll" \
--- /dev/null
--- /dev/null
++--- a/common/autoconf/platform.m4
+++++ b/common/autoconf/platform.m4
++@@ -156,6 +156,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
++ VAR_CPU_BITS=64
++ VAR_CPU_ENDIAN=big
++ ;;
+++ m68k)
+++ VAR_CPU=m68k
+++ VAR_CPU_ARCH=m68k
+++ VAR_CPU_BITS=32
+++ VAR_CPU_ENDIAN=big
+++ ;;
++ *)
++ AC_MSG_ERROR([unsupported cpu $1])
++ ;;
++--- a/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
+++++ b/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
++@@ -38,7 +38,7 @@
++ * __m68k_cmpxchg
++ *
++ * Atomically store newval in *ptr if *ptr is equal to oldval for user space.
++- * Returns newval on success and oldval if no exchange happened.
+++ * Returns oldval on success and *ptr if no exchange happened.
++ * This implementation is processor specific and works on
++ * 68020 68030 68040 and 68060.
++ *
++@@ -62,40 +62,48 @@ static inline int __m68k_cmpxchg(int old
++ static inline int m68k_compare_and_swap(volatile int *ptr,
++ int oldval,
++ int newval) {
+++ int prev = *ptr;
++ for (;;) {
++- int prev = *ptr;
+++ int newprev;
++ if (prev != oldval)
++ return prev;
++
++- if (__m68k_cmpxchg (prev, newval, ptr) == newval)
+++ newprev = __m68k_cmpxchg (prev, newval, ptr);
+++ if (newprev == prev)
++ // Success.
++ return prev;
++
++ // We failed even though prev == oldval. Try again.
+++ prev = newprev;
++ }
++ }
++
++ /* Atomically add an int to memory. */
++ static inline int m68k_add_and_fetch(volatile int *ptr, int add_value) {
+++ int prev = *ptr;
++ for (;;) {
++ // Loop until success.
+++ int newprev;
++
++- int prev = *ptr;
++-
++- if (__m68k_cmpxchg (prev, prev + add_value, ptr) == prev + add_value)
+++ newprev = __m68k_cmpxchg (prev, prev + add_value, ptr);
+++ if (newprev == prev)
++ return prev + add_value;
+++ prev = newprev;
++ }
++ }
++
++ /* Atomically write VALUE into `*PTR' and returns the previous
++ contents of `*PTR'. */
++ static inline int m68k_lock_test_and_set(volatile int *ptr, int newval) {
+++ int prev = *ptr;
++ for (;;) {
++ // Loop until success.
++- int prev = *ptr;
+++ int newprev;
++
++- if (__m68k_cmpxchg (prev, newval, ptr) == prev)
+++ newprev = __m68k_cmpxchg (prev, newval, ptr);
+++ if (newprev == prev)
++ return prev;
+++ prev = newprev;
++ }
++ }
++ #endif // M68K
++--- a/hotspot/src/share/vm/memory/allocation.hpp
+++++ b/hotspot/src/share/vm/memory/allocation.hpp
++@@ -191,7 +191,7 @@ template <MEMFLAGS F> class CHeapObj ALL
++ throw();
++ void operator delete(void* p);
++ void operator delete [] (void* p);
++-};
+++} __attribute__ ((aligned (4)));
++
++ // Base class for objects allocated on the stack only.
++ // Calling new or delete will result in fatal error.
++@@ -205,7 +205,7 @@ class StackObj ALLOCATION_SUPER_CLASS_SP
++ #endif
++ void operator delete(void* p);
++ void operator delete [](void* p);
++-};
+++} __attribute__ ((aligned (4)));
++
++ // Base class for objects used as value objects.
++ // Calling new or delete will result in fatal error.
++@@ -231,7 +231,7 @@ class _ValueObj {
++ void operator delete(void* p);
++ void* operator new [](size_t size) throw();
++ void operator delete [](void* p);
++-};
+++} __attribute__ ((aligned (4)));
++
++
++ // Base class for objects stored in Metaspace.
++@@ -611,7 +611,7 @@ class ResourceObj ALLOCATION_SUPER_CLASS
++
++ void operator delete(void* p);
++ void operator delete [](void* p);
++-};
+++} __attribute__ ((aligned (4)));
++
++ // One of the following macros must be used when allocating an array
++ // or object to determine whether it should reside in the C heap on in
++--- a/hotspot/src/share/vm/oops/constMethod.hpp
+++++ b/hotspot/src/share/vm/oops/constMethod.hpp
++@@ -522,6 +522,6 @@ private:
++
++ // Verify
++ void verify_on(outputStream* st);
++-};
+++} __attribute__ ((aligned (4)));
++
++ #endif // SHARE_VM_OOPS_CONSTMETHODOOP_HPP
++--- a/hotspot/src/share/vm/oops/oop.hpp
+++++ b/hotspot/src/share/vm/oops/oop.hpp
++@@ -374,6 +374,6 @@ class oopDesc {
++ static int mark_offset_in_bytes() { return offset_of(oopDesc, _mark); }
++ static int klass_offset_in_bytes() { return offset_of(oopDesc, _metadata._klass); }
++ static int klass_gap_offset_in_bytes();
++-};
+++} __attribute__ ((aligned (4)));
++
++ #endif // SHARE_VM_OOPS_OOP_HPP
++--- a/jdk/make/gensrc/GensrcX11Wrappers.gmk
+++++ b/jdk/make/gensrc/GensrcX11Wrappers.gmk
++@@ -57,12 +57,16 @@ else
++ GENSRC_X11_VERSION := 32 64
++ endif
++ endif
+++GENSRC_X11_VERSION_VARIANT :=
+++ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU), linux-m68k)
+++ GENSRC_X11_VERSION_VARIANT := -linux-m68k
+++endif
++
++ GENSRC_X11_SIZES_USED := $(addprefix $(GENSRC_X11WRAPPERS_TMP)/sizes., $(GENSRC_X11_VERSION))
++
++ # Copy only the sizes.* files that are actually needed. WrapperGenerator picks up any it finds from the
++ # file prefix it is given so those not needed need to be hidden.
++-$(GENSRC_X11WRAPPERS_TMP)/sizes.%: $(GENSRC_SIZER_DIR)/sizes.%
+++$(GENSRC_X11WRAPPERS_TMP)/sizes.%: $(GENSRC_SIZER_DIR)/sizes.%$(GENSRC_X11_VERSION_VARIANT)
++ $(MKDIR) -p $(@D)
++ $(RM) '$@'
++ $(SORT) $< > $@
++--- a/jdk/src/solaris/bin/java_md_solinux.c
+++++ b/jdk/src/solaris/bin/java_md_solinux.c
++@@ -1023,12 +1023,24 @@ void SplashFreeLibrary() {
++ }
++ }
++
+++struct call_continuation_args {
+++ int (JNICALL *continuation)(void *);
+++ void *args;
+++};
+++
+++static void *call_continuation(void *_args)
+++{
+++ struct call_continuation_args *args = _args;
+++ return (void *)args->continuation(args->args);
+++}
+++
++ /*
++ * Block current thread and continue execution in a new thread
++ */
++ int
++ ContinueInNewThread0(int (JNICALL *continuation)(void *), jlong stack_size, void * args) {
++ int rslt;
+++ struct call_continuation_args ccargs = { continuation, args };
++ #ifndef __solaris__
++ pthread_t tid;
++ pthread_attr_t attr;
++@@ -1039,7 +1051,7 @@ ContinueInNewThread0(int (JNICALL *conti
++ pthread_attr_setstacksize(&attr, stack_size);
++ }
++
++- if (pthread_create(&tid, &attr, (void *(*)(void*))continuation, (void*)args) == 0) {
+++ if (pthread_create(&tid, &attr, call_continuation, &ccargs) == 0) {
++ void * tmp;
++ pthread_join(tid, &tmp);
++ rslt = (int)tmp;
++@@ -1057,7 +1069,7 @@ ContinueInNewThread0(int (JNICALL *conti
++ #else /* __solaris__ */
++ thread_t tid;
++ long flags = 0;
++- if (thr_create(NULL, stack_size, (void *(*)(void *))continuation, args, flags, &tid) == 0) {
+++ if (thr_create(NULL, stack_size, call_continuation, &ccargs, flags, &tid) == 0) {
++ void * tmp;
++ thr_join(tid, NULL, &tmp);
++ rslt = (int)tmp;
++--- /dev/null
+++++ b/jdk/src/solaris/classes/sun/awt/X11/generator/sizes.32-linux-m68k
++@@ -0,0 +1,1016 @@
+++long 4
+++int 4
+++short 2
+++ptr 4
+++Bool 4
+++Atom 4
+++Window 4
+++XExtData.number 0
+++XExtData.next 4
+++XExtData.free_private 8
+++XExtData.private_data 12
+++XExtData 16
+++XIMStringConversionCallbackStruct.position 0
+++XIMStringConversionCallbackStruct.direction 2
+++XIMStringConversionCallbackStruct.operation 6
+++XIMStringConversionCallbackStruct.factor 8
+++XIMStringConversionCallbackStruct.text 10
+++XIMStringConversionCallbackStruct 14
+++XkbNewKeyboardNotifyEvent.type 0
+++XkbNewKeyboardNotifyEvent.serial 4
+++XkbNewKeyboardNotifyEvent.send_event 8
+++XkbNewKeyboardNotifyEvent.display 12
+++XkbNewKeyboardNotifyEvent.time 16
+++XkbNewKeyboardNotifyEvent.xkb_type 20
+++XkbNewKeyboardNotifyEvent.device 24
+++XkbNewKeyboardNotifyEvent.old_device 28
+++XkbNewKeyboardNotifyEvent.min_key_code 32
+++XkbNewKeyboardNotifyEvent.max_key_code 36
+++XkbNewKeyboardNotifyEvent.old_min_key_code 40
+++XkbNewKeyboardNotifyEvent.old_max_key_code 44
+++XkbNewKeyboardNotifyEvent.changed 48
+++XkbNewKeyboardNotifyEvent.req_major 52
+++XkbNewKeyboardNotifyEvent.req_minor 53
+++XkbNewKeyboardNotifyEvent 54
+++XTimeCoord.time 0
+++XTimeCoord.x 4
+++XTimeCoord.y 6
+++XTimeCoord 8
+++XkbCompatMapNotifyEvent.type 0
+++XkbCompatMapNotifyEvent.serial 4
+++XkbCompatMapNotifyEvent.send_event 8
+++XkbCompatMapNotifyEvent.display 12
+++XkbCompatMapNotifyEvent.time 16
+++XkbCompatMapNotifyEvent.xkb_type 20
+++XkbCompatMapNotifyEvent.device 24
+++XkbCompatMapNotifyEvent.changed_groups 28
+++XkbCompatMapNotifyEvent.first_si 32
+++XkbCompatMapNotifyEvent.num_si 36
+++XkbCompatMapNotifyEvent.num_total_si 40
+++XkbCompatMapNotifyEvent 44
+++XIMStatusDrawCallbackStruct.type 0
+++XIMStatusDrawCallbackStruct.data 4
+++XIMStatusDrawCallbackStruct 8
+++XKeyboardControl.key_click_percent 0
+++XKeyboardControl.bell_percent 4
+++XKeyboardControl.bell_pitch 8
+++XKeyboardControl.bell_duration 12
+++XKeyboardControl.led 16
+++XKeyboardControl.led_mode 20
+++XKeyboardControl.key 24
+++XKeyboardControl.auto_repeat_mode 28
+++XKeyboardControl 32
+++XSelectionClearEvent.type 0
+++XSelectionClearEvent.serial 4
+++XSelectionClearEvent.send_event 8
+++XSelectionClearEvent.display 12
+++XSelectionClearEvent.window 16
+++XSelectionClearEvent.selection 20
+++XSelectionClearEvent.time 24
+++XSelectionClearEvent 28
+++XWindowChanges.x 0
+++XWindowChanges.y 4
+++XWindowChanges.width 8
+++XWindowChanges.height 12
+++XWindowChanges.border_width 16
+++XWindowChanges.sibling 20
+++XWindowChanges.stack_mode 24
+++XWindowChanges 28
+++XIMPreeditCaretCallbackStruct.position 0
+++XIMPreeditCaretCallbackStruct.direction 4
+++XIMPreeditCaretCallbackStruct.style 8
+++XIMPreeditCaretCallbackStruct 12
+++XOMCharSetList.charset_count 0
+++XOMCharSetList.charset_list 4
+++XOMCharSetList 8
+++XOMFontInfo.num_font 0
+++XOMFontInfo.font_struct_list 4
+++XOMFontInfo.font_name_list 8
+++XOMFontInfo 12
+++AwtScreenData.numConfigs 0
+++AwtScreenData.root 4
+++AwtScreenData.whitepixel 8
+++AwtScreenData.blackpixel 12
+++AwtScreenData.defaultConfig 16
+++AwtScreenData.configs 20
+++AwtScreenData 24
+++XIMHotKeyTrigger.keysym 0
+++XIMHotKeyTrigger.modifier 4
+++XIMHotKeyTrigger.modifier_mask 8
+++XIMHotKeyTrigger 12
+++XCirculateEvent.type 0
+++XCirculateEvent.serial 4
+++XCirculateEvent.send_event 8
+++XCirculateEvent.display 12
+++XCirculateEvent.event 16
+++XCirculateEvent.window 20
+++XCirculateEvent.place 24
+++XCirculateEvent 28
+++Screen.ext_data 0
+++Screen.display 4
+++Screen.root 8
+++Screen.width 12
+++Screen.height 16
+++Screen.mwidth 20
+++Screen.mheight 24
+++Screen.ndepths 28
+++Screen.depths 32
+++Screen.root_depth 36
+++Screen.root_visual 40
+++Screen.default_gc 44
+++Screen.cmap 48
+++Screen.white_pixel 52
+++Screen.black_pixel 56
+++Screen.max_maps 60
+++Screen.min_maps 64
+++Screen.backing_store 68
+++Screen.save_unders 72
+++Screen.root_input_mask 76
+++Screen 80
+++XMapRequestEvent.type 0
+++XMapRequestEvent.serial 4
+++XMapRequestEvent.send_event 8
+++XMapRequestEvent.display 12
+++XMapRequestEvent.parent 16
+++XMapRequestEvent.window 20
+++XMapRequestEvent 24
+++XIMText.length 0
+++XIMText.feedback 2
+++XIMText.encoding_is_wchar 6
+++XIMText.string 10
+++XIMText 14
+++XGraphicsExposeEvent.type 0
+++XGraphicsExposeEvent.serial 4
+++XGraphicsExposeEvent.send_event 8
+++XGraphicsExposeEvent.display 12
+++XGraphicsExposeEvent.drawable 16
+++XGraphicsExposeEvent.x 20
+++XGraphicsExposeEvent.y 24
+++XGraphicsExposeEvent.width 28
+++XGraphicsExposeEvent.height 32
+++XGraphicsExposeEvent.count 36
+++XGraphicsExposeEvent.major_code 40
+++XGraphicsExposeEvent.minor_code 44
+++XGraphicsExposeEvent 48
+++XEvent.type 0
+++XEvent.xany 0
+++XEvent.xkey 0
+++XEvent.xbutton 0
+++XEvent.xmotion 0
+++XEvent.xcrossing 0
+++XEvent.xfocus 0
+++XEvent.xexpose 0
+++XEvent.xgraphicsexpose 0
+++XEvent.xnoexpose 0
+++XEvent.xvisibility 0
+++XEvent.xcreatewindow 0
+++XEvent.xdestroywindow 0
+++XEvent.xunmap 0
+++XEvent.xmap 0
+++XEvent.xmaprequest 0
+++XEvent.xreparent 0
+++XEvent.xconfigure 0
+++XEvent.xgravity 0
+++XEvent.xresizerequest 0
+++XEvent.xconfigurerequest 0
+++XEvent.xcirculate 0
+++XEvent.xcirculaterequest 0
+++XEvent.xproperty 0
+++XEvent.xselectionclear 0
+++XEvent.xselectionrequest 0
+++XEvent.xselection 0
+++XEvent.xcolormap 0
+++XEvent.xclient 0
+++XEvent.xmapping 0
+++XEvent.xerror 0
+++XEvent.xkeymap 0
+++XEvent.pad 0
+++XEvent 96
+++XRenderDirectFormat.red 0
+++XRenderDirectFormat.redMask 2
+++XRenderDirectFormat.green 4
+++XRenderDirectFormat.greenMask 6
+++XRenderDirectFormat.blue 8
+++XRenderDirectFormat.blueMask 10
+++XRenderDirectFormat.alpha 12
+++XRenderDirectFormat.alphaMask 14
+++XRenderDirectFormat 16
+++ColorData.awt_Colors 0
+++ColorData.awt_numICMcolors 4
+++ColorData.awt_icmLUT 8
+++ColorData.awt_icmLUT2Colors 12
+++ColorData.img_grays 16
+++ColorData.img_clr_tbl 20
+++ColorData.img_oda_red 24
+++ColorData.img_oda_green 28
+++ColorData.img_oda_blue 32
+++ColorData.pGrayInverseLutData 36
+++ColorData.screendata 40
+++ColorData 44
+++XFontStruct.ext_data 0
+++XFontStruct.fid 4
+++XFontStruct.direction 8
+++XFontStruct.min_char_or_byte2 12
+++XFontStruct.max_char_or_byte2 16
+++XFontStruct.min_byte1 20
+++XFontStruct.max_byte1 24
+++XFontStruct.all_chars_exist 28
+++XFontStruct.n_properties 36
+++XFontStruct.properties 40
+++XFontStruct.min_bounds 44
+++XFontStruct.max_bounds 56
+++XFontStruct.per_char 68
+++XFontStruct.ascent 72
+++XFontStruct.descent 76
+++XFontStruct 80
+++XExtCodes.extension 0
+++XExtCodes.major_opcode 4
+++XExtCodes.first_event 8
+++XExtCodes.first_error 12
+++XExtCodes 16
+++XFontSetExtents.max_ink_extent 0
+++XFontSetExtents.max_logical_extent 8
+++XFontSetExtents 16
+++XSelectionEvent.type 0
+++XSelectionEvent.serial 4
+++XSelectionEvent.send_event 8
+++XSelectionEvent.display 12
+++XSelectionEvent.requestor 16
+++XSelectionEvent.selection 20
+++XSelectionEvent.target 24
+++XSelectionEvent.property 28
+++XSelectionEvent.time 32
+++XSelectionEvent 36
+++XArc.x 0
+++XArc.y 2
+++XArc.width 4
+++XArc.height 6
+++XArc.angle1 8
+++XArc.angle2 10
+++XArc 12
+++XErrorEvent.type 0
+++XErrorEvent.display 4
+++XErrorEvent.resourceid 8
+++XErrorEvent.serial 12
+++XErrorEvent.error_code 16
+++XErrorEvent.request_code 17
+++XErrorEvent.minor_code 18
+++XErrorEvent 20
+++XConfigureRequestEvent.type 0
+++XConfigureRequestEvent.serial 4
+++XConfigureRequestEvent.send_event 8
+++XConfigureRequestEvent.display 12
+++XConfigureRequestEvent.parent 16
+++XConfigureRequestEvent.window 20
+++XConfigureRequestEvent.x 24
+++XConfigureRequestEvent.y 28
+++XConfigureRequestEvent.width 32
+++XConfigureRequestEvent.height 36
+++XConfigureRequestEvent.border_width 40
+++XConfigureRequestEvent.above 44
+++XConfigureRequestEvent.detail 48
+++XConfigureRequestEvent.value_mask 52
+++XConfigureRequestEvent 56
+++ScreenFormat.ext_data 0
+++ScreenFormat.depth 4
+++ScreenFormat.bits_per_pixel 8
+++ScreenFormat.scanline_pad 12
+++ScreenFormat 16
+++XButtonEvent.type 0
+++XButtonEvent.serial 4
+++XButtonEvent.send_event 8
+++XButtonEvent.display 12
+++XButtonEvent.window 16
+++XButtonEvent.root 20
+++XButtonEvent.subwindow 24
+++XButtonEvent.time 28
+++XButtonEvent.x 32
+++XButtonEvent.y 36
+++XButtonEvent.x_root 40
+++XButtonEvent.y_root 44
+++XButtonEvent.state 48
+++XButtonEvent.button 52
+++XButtonEvent.same_screen 56
+++XButtonEvent 60
+++XFontProp.name 0
+++XFontProp.card32 4
+++XFontProp 8
+++XIMValuesList.count_values 0
+++XIMValuesList.supported_values 2
+++XIMValuesList 6
+++XKeymapEvent.type 0
+++XKeymapEvent.serial 4
+++XKeymapEvent.send_event 8
+++XKeymapEvent.display 12
+++XKeymapEvent.window 16
+++XKeymapEvent.key_vector 20
+++XKeymapEvent 52
+++XTextItem16.chars 0
+++XTextItem16.nchars 4
+++XTextItem16.delta 8
+++XTextItem16.font 12
+++XTextItem16 16
+++XIMPreeditDrawCallbackStruct.caret 0
+++XIMPreeditDrawCallbackStruct.chg_first 4
+++XIMPreeditDrawCallbackStruct.chg_length 8
+++XIMPreeditDrawCallbackStruct.text 12
+++XIMPreeditDrawCallbackStruct 16
+++XVisualInfo.visual 0
+++XVisualInfo.visualid 4
+++XVisualInfo.screen 8
+++XVisualInfo.depth 12
+++XVisualInfo.class 16
+++XVisualInfo.red_mask 20
+++XVisualInfo.green_mask 24
+++XVisualInfo.blue_mask 28
+++XVisualInfo.colormap_size 32
+++XVisualInfo.bits_per_rgb 36
+++XVisualInfo 40
+++XkbControlsNotifyEvent.type 0
+++XkbControlsNotifyEvent.serial 4
+++XkbControlsNotifyEvent.send_event 8
+++XkbControlsNotifyEvent.display 12
+++XkbControlsNotifyEvent.time 16
+++XkbControlsNotifyEvent.xkb_type 20
+++XkbControlsNotifyEvent.device 24
+++XkbControlsNotifyEvent.changed_ctrls 28
+++XkbControlsNotifyEvent.enabled_ctrls 32
+++XkbControlsNotifyEvent.enabled_ctrl_changes 36
+++XkbControlsNotifyEvent.num_groups 40
+++XkbControlsNotifyEvent.keycode 44
+++XkbControlsNotifyEvent.event_type 45
+++XkbControlsNotifyEvent.req_major 46
+++XkbControlsNotifyEvent.req_minor 47
+++XkbControlsNotifyEvent 48
+++PropMwmHints.flags 0
+++PropMwmHints.functions 4
+++PropMwmHints.decorations 8
+++PropMwmHints.inputMode 12
+++PropMwmHints.status 16
+++PropMwmHints 20
+++XClientMessageEvent.type 0
+++XClientMessageEvent.serial 4
+++XClientMessageEvent.send_event 8
+++XClientMessageEvent.display 12
+++XClientMessageEvent.window 16
+++XClientMessageEvent.message_type 20
+++XClientMessageEvent.format 24
+++XClientMessageEvent.data 28
+++XClientMessageEvent 48
+++XAnyEvent.type 0
+++XAnyEvent.serial 4
+++XAnyEvent.send_event 8
+++XAnyEvent.display 12
+++XAnyEvent.window 16
+++XAnyEvent 20
+++XkbIndicatorNotifyEvent.type 0
+++XkbIndicatorNotifyEvent.serial 4
+++XkbIndicatorNotifyEvent.send_event 8
+++XkbIndicatorNotifyEvent.display 12
+++XkbIndicatorNotifyEvent.time 16
+++XkbIndicatorNotifyEvent.xkb_type 20
+++XkbIndicatorNotifyEvent.device 24
+++XkbIndicatorNotifyEvent.changed 28
+++XkbIndicatorNotifyEvent.state 32
+++XkbIndicatorNotifyEvent 36
+++XIMPreeditStateNotifyCallbackStruct.state 0
+++XIMPreeditStateNotifyCallbackStruct 4
+++XkbAnyEvent.type 0
+++XkbAnyEvent.serial 4
+++XkbAnyEvent.send_event 8
+++XkbAnyEvent.display 12
+++XkbAnyEvent.time 16
+++XkbAnyEvent.xkb_type 20
+++XkbAnyEvent.device 24
+++XkbAnyEvent 28
+++XMotionEvent.type 0
+++XMotionEvent.serial 4
+++XMotionEvent.send_event 8
+++XMotionEvent.display 12
+++XMotionEvent.window 16
+++XMotionEvent.root 20
+++XMotionEvent.subwindow 24
+++XMotionEvent.time 28
+++XMotionEvent.x 32
+++XMotionEvent.y 36
+++XMotionEvent.x_root 40
+++XMotionEvent.y_root 44
+++XMotionEvent.state 48
+++XMotionEvent.is_hint 52
+++XMotionEvent.same_screen 54
+++XMotionEvent 58
+++XIMHotKeyTriggers.num_hot_key 0
+++XIMHotKeyTriggers.key 4
+++XIMHotKeyTriggers 8
+++XIMStyles.count_styles 0
+++XIMStyles.supported_styles 2
+++XIMStyles 6
+++XkbExtensionDeviceNotifyEvent.type 0
+++XkbExtensionDeviceNotifyEvent.serial 4
+++XkbExtensionDeviceNotifyEvent.send_event 8
+++XkbExtensionDeviceNotifyEvent.display 12
+++XkbExtensionDeviceNotifyEvent.time 16
+++XkbExtensionDeviceNotifyEvent.xkb_type 20
+++XkbExtensionDeviceNotifyEvent.device 24
+++XkbExtensionDeviceNotifyEvent.reason 28
+++XkbExtensionDeviceNotifyEvent.supported 32
+++XkbExtensionDeviceNotifyEvent.unsupported 36
+++XkbExtensionDeviceNotifyEvent.first_btn 40
+++XkbExtensionDeviceNotifyEvent.num_btns 44
+++XkbExtensionDeviceNotifyEvent.leds_defined 48
+++XkbExtensionDeviceNotifyEvent.led_state 52
+++XkbExtensionDeviceNotifyEvent.led_class 56
+++XkbExtensionDeviceNotifyEvent.led_id 60
+++XkbExtensionDeviceNotifyEvent 64
+++XwcTextItem.chars 0
+++XwcTextItem.nchars 4
+++XwcTextItem.delta 8
+++XwcTextItem.font_set 12
+++XwcTextItem 16
+++XClassHint.res_name 0
+++XClassHint.res_class 4
+++XClassHint 8
+++XChar2b.byte1 0
+++XChar2b.byte2 1
+++XChar2b 2
+++XSetWindowAttributes.background_pixmap 0
+++XSetWindowAttributes.background_pixel 4
+++XSetWindowAttributes.border_pixmap 8
+++XSetWindowAttributes.border_pixel 12
+++XSetWindowAttributes.bit_gravity 16
+++XSetWindowAttributes.win_gravity 20
+++XSetWindowAttributes.backing_store 24
+++XSetWindowAttributes.backing_planes 28
+++XSetWindowAttributes.backing_pixel 32
+++XSetWindowAttributes.save_under 36
+++XSetWindowAttributes.event_mask 40
+++XSetWindowAttributes.do_not_propagate_mask 44
+++XSetWindowAttributes.override_redirect 48
+++XSetWindowAttributes.colormap 52
+++XSetWindowAttributes.cursor 56
+++XSetWindowAttributes 60
+++XRenderPictFormat.id 0
+++XRenderPictFormat.type 4
+++XRenderPictFormat.depth 8
+++XRenderPictFormat.direct 12
+++XRenderPictFormat.colormap 28
+++XRenderPictFormat 32
+++XReparentEvent.type 0
+++XReparentEvent.serial 4
+++XReparentEvent.send_event 8
+++XReparentEvent.display 12
+++XReparentEvent.event 16
+++XReparentEvent.window 20
+++XReparentEvent.parent 24
+++XReparentEvent.x 28
+++XReparentEvent.y 32
+++XReparentEvent.override_redirect 36
+++XReparentEvent 40
+++XCirculateRequestEvent.type 0
+++XCirculateRequestEvent.serial 4
+++XCirculateRequestEvent.send_event 8
+++XCirculateRequestEvent.display 12
+++XCirculateRequestEvent.parent 16
+++XCirculateRequestEvent.window 20
+++XCirculateRequestEvent.place 24
+++XCirculateRequestEvent 28
+++XImage.width 0
+++XImage.height 4
+++XImage.xoffset 8
+++XImage.format 12
+++XImage.data 16
+++XImage.byte_order 20
+++XImage.bitmap_unit 24
+++XImage.bitmap_bit_order 28
+++XImage.bitmap_pad 32
+++XImage.depth 36
+++XImage.bytes_per_line 40
+++XImage.bits_per_pixel 44
+++XImage.red_mask 48
+++XImage.green_mask 52
+++XImage.blue_mask 56
+++XImage.obdata 60
+++XImage.f.create_image 64
+++XImage.f.destroy_image 68
+++XImage.f.get_pixel 72
+++XImage.f.put_pixel 76
+++XImage.f.sub_image 80
+++XImage.f.add_pixel 84
+++XImage 88
+++XKeyEvent.type 0
+++XKeyEvent.serial 4
+++XKeyEvent.send_event 8
+++XKeyEvent.display 12
+++XKeyEvent.window 16
+++XKeyEvent.root 20
+++XKeyEvent.subwindow 24
+++XKeyEvent.time 28
+++XKeyEvent.x 32
+++XKeyEvent.y 36
+++XKeyEvent.x_root 40
+++XKeyEvent.y_root 44
+++XKeyEvent.state 48
+++XKeyEvent.keycode 52
+++XKeyEvent.same_screen 56
+++XKeyEvent 60
+++XkbActionMessageEvent.type 0
+++XkbActionMessageEvent.serial 4
+++XkbActionMessageEvent.send_event 8
+++XkbActionMessageEvent.display 12
+++XkbActionMessageEvent.time 16
+++XkbActionMessageEvent.xkb_type 20
+++XkbActionMessageEvent.device 24
+++XkbActionMessageEvent.keycode 28
+++XkbActionMessageEvent.press 30
+++XkbActionMessageEvent.key_event_follows 34
+++XkbActionMessageEvent.group 38
+++XkbActionMessageEvent.mods 42
+++XkbActionMessageEvent.message 46
+++XkbActionMessageEvent 54
+++XdbeSwapInfo.swap_window 0
+++XdbeSwapInfo.swap_action 4
+++XdbeSwapInfo 6
+++XTextItem.chars 0
+++XTextItem.nchars 4
+++XTextItem.delta 8
+++XTextItem.font 12
+++XTextItem 16
+++XModifierKeymap.max_keypermod 0
+++XModifierKeymap.modifiermap 4
+++XModifierKeymap 8
+++XCharStruct.lbearing 0
+++XCharStruct.rbearing 2
+++XCharStruct.width 4
+++XCharStruct.ascent 6
+++XCharStruct.descent 8
+++XCharStruct.attributes 10
+++XCharStruct 12
+++XGravityEvent.type 0
+++XGravityEvent.serial 4
+++XGravityEvent.send_event 8
+++XGravityEvent.display 12
+++XGravityEvent.event 16
+++XGravityEvent.window 20
+++XGravityEvent.x 24
+++XGravityEvent.y 28
+++XGravityEvent 32
+++Visual.ext_data 0
+++Visual.visualid 4
+++Visual.class 8
+++Visual.red_mask 12
+++Visual.green_mask 16
+++Visual.blue_mask 20
+++Visual.bits_per_rgb 24
+++Visual.map_entries 28
+++Visual 32
+++XOMOrientation.num_orientation 0
+++XOMOrientation.orientation 4
+++XOMOrientation 8
+++XkbAccessXNotifyEvent.type 0
+++XkbAccessXNotifyEvent.serial 4
+++XkbAccessXNotifyEvent.send_event 8
+++XkbAccessXNotifyEvent.display 12
+++XkbAccessXNotifyEvent.time 16
+++XkbAccessXNotifyEvent.xkb_type 20
+++XkbAccessXNotifyEvent.device 24
+++XkbAccessXNotifyEvent.detail 28
+++XkbAccessXNotifyEvent.keycode 32
+++XkbAccessXNotifyEvent.sk_delay 36
+++XkbAccessXNotifyEvent.debounce_delay 40
+++XkbAccessXNotifyEvent 44
+++XWindowAttributes.x 0
+++XWindowAttributes.y 4
+++XWindowAttributes.width 8
+++XWindowAttributes.height 12
+++XWindowAttributes.border_width 16
+++XWindowAttributes.depth 20
+++XWindowAttributes.visual 24
+++XWindowAttributes.root 28
+++XWindowAttributes.class 32
+++XWindowAttributes.bit_gravity 36
+++XWindowAttributes.win_gravity 40
+++XWindowAttributes.backing_store 44
+++XWindowAttributes.backing_planes 48
+++XWindowAttributes.backing_pixel 52
+++XWindowAttributes.save_under 56
+++XWindowAttributes.colormap 60
+++XWindowAttributes.map_installed 64
+++XWindowAttributes.map_state 68
+++XWindowAttributes.all_event_masks 72
+++XWindowAttributes.your_event_mask 76
+++XWindowAttributes.do_not_propagate_mask 80
+++XWindowAttributes.override_redirect 84
+++XWindowAttributes.screen 88
+++XWindowAttributes 92
+++XmbTextItem.chars 0
+++XmbTextItem.nchars 4
+++XmbTextItem.delta 8
+++XmbTextItem.font_set 12
+++XmbTextItem 16
+++XMappingEvent.type 0
+++XMappingEvent.serial 4
+++XMappingEvent.send_event 8
+++XMappingEvent.display 12
+++XMappingEvent.window 16
+++XMappingEvent.request 20
+++XMappingEvent.first_keycode 24
+++XMappingEvent.count 28
+++XMappingEvent 32
+++XSizeHints.flags 0
+++XSizeHints.x 4
+++XSizeHints.y 8
+++XSizeHints.width 12
+++XSizeHints.height 16
+++XSizeHints.min_width 20
+++XSizeHints.min_height 24
+++XSizeHints.max_width 28
+++XSizeHints.max_height 32
+++XSizeHints.width_inc 36
+++XSizeHints.height_inc 40
+++XSizeHints.min_aspect.x 44
+++XSizeHints.min_aspect.y 48
+++XSizeHints.max_aspect.x 52
+++XSizeHints.max_aspect.y 56
+++XSizeHints.base_width 60
+++XSizeHints.base_height 64
+++XSizeHints.win_gravity 68
+++XSizeHints 72
+++XUnmapEvent.type 0
+++XUnmapEvent.serial 4
+++XUnmapEvent.send_event 8
+++XUnmapEvent.display 12
+++XUnmapEvent.event 16
+++XUnmapEvent.window 20
+++XUnmapEvent.from_configure 24
+++XUnmapEvent 28
+++awtImageData.Depth 0
+++awtImageData.wsImageFormat 4
+++awtImageData.clrdata 16
+++awtImageData.convert 48
+++awtImageData 304
+++XkbStateNotifyEvent.type 0
+++XkbStateNotifyEvent.serial 4
+++XkbStateNotifyEvent.send_event 8
+++XkbStateNotifyEvent.display 12
+++XkbStateNotifyEvent.time 16
+++XkbStateNotifyEvent.xkb_type 20
+++XkbStateNotifyEvent.device 24
+++XkbStateNotifyEvent.changed 28
+++XkbStateNotifyEvent.group 32
+++XkbStateNotifyEvent.base_group 36
+++XkbStateNotifyEvent.latched_group 40
+++XkbStateNotifyEvent.locked_group 44
+++XkbStateNotifyEvent.mods 48
+++XkbStateNotifyEvent.base_mods 52
+++XkbStateNotifyEvent.latched_mods 56
+++XkbStateNotifyEvent.locked_mods 60
+++XkbStateNotifyEvent.compat_state 64
+++XkbStateNotifyEvent.grab_mods 68
+++XkbStateNotifyEvent.compat_grab_mods 69
+++XkbStateNotifyEvent.lookup_mods 70
+++XkbStateNotifyEvent.compat_lookup_mods 71
+++XkbStateNotifyEvent.ptr_buttons 72
+++XkbStateNotifyEvent.keycode 76
+++XkbStateNotifyEvent.event_type 77
+++XkbStateNotifyEvent.req_major 78
+++XkbStateNotifyEvent.req_minor 79
+++XkbStateNotifyEvent 80
+++XExposeEvent.type 0
+++XExposeEvent.serial 4
+++XExposeEvent.send_event 8
+++XExposeEvent.display 12
+++XExposeEvent.window 16
+++XExposeEvent.x 20
+++XExposeEvent.y 24
+++XExposeEvent.width 28
+++XExposeEvent.height 32
+++XExposeEvent.count 36
+++XExposeEvent 40
+++XkbMapNotifyEvent.type 0
+++XkbMapNotifyEvent.serial 4
+++XkbMapNotifyEvent.send_event 8
+++XkbMapNotifyEvent.display 12
+++XkbMapNotifyEvent.time 16
+++XkbMapNotifyEvent.xkb_type 20
+++XkbMapNotifyEvent.device 24
+++XkbMapNotifyEvent.changed 28
+++XkbMapNotifyEvent.flags 32
+++XkbMapNotifyEvent.first_type 36
+++XkbMapNotifyEvent.num_types 40
+++XkbMapNotifyEvent.min_key_code 44
+++XkbMapNotifyEvent.max_key_code 45
+++XkbMapNotifyEvent.first_key_sym 46
+++XkbMapNotifyEvent.first_key_act 47
+++XkbMapNotifyEvent.first_key_behavior 48
+++XkbMapNotifyEvent.first_key_explicit 49
+++XkbMapNotifyEvent.first_modmap_key 50
+++XkbMapNotifyEvent.first_vmodmap_key 51
+++XkbMapNotifyEvent.num_key_syms 52
+++XkbMapNotifyEvent.num_key_acts 56
+++XkbMapNotifyEvent.num_key_behaviors 60
+++XkbMapNotifyEvent.num_key_explicit 64
+++XkbMapNotifyEvent.num_modmap_keys 68
+++XkbMapNotifyEvent.num_vmodmap_keys 72
+++XkbMapNotifyEvent.vmods 76
+++XkbMapNotifyEvent 80
+++XGCValues.function 0
+++XGCValues.plane_mask 4
+++XGCValues.foreground 8
+++XGCValues.background 12
+++XGCValues.line_width 16
+++XGCValues.line_style 20
+++XGCValues.cap_style 24
+++XGCValues.join_style 28
+++XGCValues.fill_style 32
+++XGCValues.fill_rule 36
+++XGCValues.arc_mode 40
+++XGCValues.tile 44
+++XGCValues.stipple 48
+++XGCValues.ts_x_origin 52
+++XGCValues.ts_y_origin 56
+++XGCValues.font 60
+++XGCValues.subwindow_mode 64
+++XGCValues.graphics_exposures 68
+++XGCValues.clip_x_origin 72
+++XGCValues.clip_y_origin 76
+++XGCValues.clip_mask 80
+++XGCValues.dash_offset 84
+++XGCValues.dashes 88
+++XGCValues 90
+++XFocusChangeEvent.type 0
+++XFocusChangeEvent.serial 4
+++XFocusChangeEvent.send_event 8
+++XFocusChangeEvent.display 12
+++XFocusChangeEvent.window 16
+++XFocusChangeEvent.mode 20
+++XFocusChangeEvent.detail 24
+++XFocusChangeEvent 28
+++XPixmapFormatValues.depth 0
+++XPixmapFormatValues.bits_per_pixel 4
+++XPixmapFormatValues.scanline_pad 8
+++XPixmapFormatValues 12
+++XMapEvent.type 0
+++XMapEvent.serial 4
+++XMapEvent.send_event 8
+++XMapEvent.display 12
+++XMapEvent.event 16
+++XMapEvent.window 20
+++XMapEvent.override_redirect 24
+++XMapEvent 28
+++XkbBellNotifyEvent.type 0
+++XkbBellNotifyEvent.serial 4
+++XkbBellNotifyEvent.send_event 8
+++XkbBellNotifyEvent.display 12
+++XkbBellNotifyEvent.time 16
+++XkbBellNotifyEvent.xkb_type 20
+++XkbBellNotifyEvent.device 24
+++XkbBellNotifyEvent.percent 28
+++XkbBellNotifyEvent.pitch 32
+++XkbBellNotifyEvent.duration 36
+++XkbBellNotifyEvent.bell_class 40
+++XkbBellNotifyEvent.bell_id 44
+++XkbBellNotifyEvent.name 48
+++XkbBellNotifyEvent.window 52
+++XkbBellNotifyEvent.event_only 56
+++XkbBellNotifyEvent 60
+++XIMStringConversionText.length 0
+++XIMStringConversionText.feedback 2
+++XIMStringConversionText.encoding_is_wchar 6
+++XIMStringConversionText.string 10
+++XIMStringConversionText 14
+++XKeyboardState.key_click_percent 0
+++XKeyboardState.bell_percent 4
+++XKeyboardState.bell_pitch 8
+++XKeyboardState.bell_duration 12
+++XKeyboardState.led_mask 16
+++XKeyboardState.global_auto_repeat 20
+++XKeyboardState.auto_repeats 24
+++XKeyboardState 56
+++XkbEvent.type 0
+++XkbEvent.any 0
+++XkbEvent.new_kbd 0
+++XkbEvent.map 0
+++XkbEvent.state 0
+++XkbEvent.ctrls 0
+++XkbEvent.indicators 0
+++XkbEvent.names 0
+++XkbEvent.compat 0
+++XkbEvent.bell 0
+++XkbEvent.message 0
+++XkbEvent.accessx 0
+++XkbEvent.device 0
+++XkbEvent.core 0
+++XkbEvent 96
+++XPoint.x 0
+++XPoint.y 2
+++XPoint 4
+++XSegment.x1 0
+++XSegment.y1 2
+++XSegment.x2 4
+++XSegment.y2 6
+++XSegment 8
+++XIconSize.min_width 0
+++XIconSize.min_height 4
+++XIconSize.max_width 8
+++XIconSize.max_height 12
+++XIconSize.width_inc 16
+++XIconSize.height_inc 20
+++XIconSize 24
+++XIMCallback.client_data 0
+++XIMCallback.callback 4
+++XIMCallback 8
+++XConfigureEvent.type 0
+++XConfigureEvent.serial 4
+++XConfigureEvent.send_event 8
+++XConfigureEvent.display 12
+++XConfigureEvent.event 16
+++XConfigureEvent.window 20
+++XConfigureEvent.x 24
+++XConfigureEvent.y 28
+++XConfigureEvent.width 32
+++XConfigureEvent.height 36
+++XConfigureEvent.border_width 40
+++XConfigureEvent.above 44
+++XConfigureEvent.override_redirect 48
+++XConfigureEvent 52
+++XRectangle.x 0
+++XRectangle.y 2
+++XRectangle.width 4
+++XRectangle.height 6
+++XRectangle 8
+++XkbNamesNotifyEvent.type 0
+++XkbNamesNotifyEvent.serial 4
+++XkbNamesNotifyEvent.send_event 8
+++XkbNamesNotifyEvent.display 12
+++XkbNamesNotifyEvent.time 16
+++XkbNamesNotifyEvent.xkb_type 20
+++XkbNamesNotifyEvent.device 24
+++XkbNamesNotifyEvent.changed 28
+++XkbNamesNotifyEvent.first_type 32
+++XkbNamesNotifyEvent.num_types 36
+++XkbNamesNotifyEvent.first_lvl 40
+++XkbNamesNotifyEvent.num_lvls 44
+++XkbNamesNotifyEvent.num_aliases 48
+++XkbNamesNotifyEvent.num_radio_groups 52
+++XkbNamesNotifyEvent.changed_vmods 56
+++XkbNamesNotifyEvent.changed_groups 60
+++XkbNamesNotifyEvent.changed_indicators 64
+++XkbNamesNotifyEvent.first_key 68
+++XkbNamesNotifyEvent.num_keys 72
+++XkbNamesNotifyEvent 76
+++XCreateWindowEvent.type 0
+++XCreateWindowEvent.serial 4
+++XCreateWindowEvent.send_event 8
+++XCreateWindowEvent.display 12
+++XCreateWindowEvent.parent 16
+++XCreateWindowEvent.window 20
+++XCreateWindowEvent.x 24
+++XCreateWindowEvent.y 28
+++XCreateWindowEvent.width 32
+++XCreateWindowEvent.height 36
+++XCreateWindowEvent.border_width 40
+++XCreateWindowEvent.override_redirect 44
+++XCreateWindowEvent 48
+++XVisibilityEvent.type 0
+++XVisibilityEvent.serial 4
+++XVisibilityEvent.send_event 8
+++XVisibilityEvent.display 12
+++XVisibilityEvent.window 16
+++XVisibilityEvent.state 20
+++XVisibilityEvent 24
+++XWMHints.flags 0
+++XWMHints.initial_state 8
+++XWMHints.icon_pixmap 12
+++XWMHints.icon_window 16
+++XWMHints.icon_x 20
+++XWMHints.icon_y 24
+++XWMHints.icon_mask 28
+++XWMHints.input 4
+++XWMHints.window_group 32
+++XWMHints 36
+++XCrossingEvent.type 0
+++XCrossingEvent.serial 4
+++XCrossingEvent.send_event 8
+++XCrossingEvent.display 12
+++XCrossingEvent.window 16
+++XCrossingEvent.root 20
+++XCrossingEvent.subwindow 24
+++XCrossingEvent.time 28
+++XCrossingEvent.x 32
+++XCrossingEvent.y 36
+++XCrossingEvent.x_root 40
+++XCrossingEvent.y_root 44
+++XCrossingEvent.mode 48
+++XCrossingEvent.detail 52
+++XCrossingEvent.same_screen 56
+++XCrossingEvent.focus 60
+++XCrossingEvent.state 64
+++XCrossingEvent 68
+++XSelectionRequestEvent.type 0
+++XSelectionRequestEvent.serial 4
+++XSelectionRequestEvent.send_event 8
+++XSelectionRequestEvent.display 12
+++XSelectionRequestEvent.owner 16
+++XSelectionRequestEvent.requestor 20
+++XSelectionRequestEvent.selection 24
+++XSelectionRequestEvent.target 28
+++XSelectionRequestEvent.property 32
+++XSelectionRequestEvent.time 36
+++XSelectionRequestEvent 40
+++XNoExposeEvent.type 0
+++XNoExposeEvent.serial 4
+++XNoExposeEvent.send_event 8
+++XNoExposeEvent.display 12
+++XNoExposeEvent.drawable 16
+++XNoExposeEvent.major_code 20
+++XNoExposeEvent.minor_code 24
+++XNoExposeEvent 28
+++XHostAddress.family 0
+++XHostAddress.length 4
+++XHostAddress.address 8
+++XHostAddress 12
+++XColormapEvent.type 0
+++XColormapEvent.serial 4
+++XColormapEvent.send_event 8
+++XColormapEvent.display 12
+++XColormapEvent.window 16
+++XColormapEvent.colormap 20
+++XColormapEvent.new 24
+++XColormapEvent.state 28
+++XColormapEvent 32
+++ColorEntry.r 0
+++ColorEntry.g 1
+++ColorEntry.b 2
+++ColorEntry.flags 3
+++ColorEntry 4
+++XResizeRequestEvent.type 0
+++XResizeRequestEvent.serial 4
+++XResizeRequestEvent.send_event 8
+++XResizeRequestEvent.display 12
+++XResizeRequestEvent.window 16
+++XResizeRequestEvent.width 20
+++XResizeRequestEvent.height 24
+++XResizeRequestEvent 28
+++Depth.depth 0
+++Depth.nvisuals 4
+++Depth.visuals 8
+++Depth 12
+++XPropertyEvent.type 0
+++XPropertyEvent.serial 4
+++XPropertyEvent.send_event 8
+++XPropertyEvent.display 12
+++XPropertyEvent.window 16
+++XPropertyEvent.atom 20
+++XPropertyEvent.time 24
+++XPropertyEvent.state 28
+++XPropertyEvent 32
+++XDestroyWindowEvent.type 0
+++XDestroyWindowEvent.serial 4
+++XDestroyWindowEvent.send_event 8
+++XDestroyWindowEvent.display 12
+++XDestroyWindowEvent.event 16
+++XDestroyWindowEvent.window 20
+++XDestroyWindowEvent 24
+++XStandardColormap.colormap 0
+++XStandardColormap.red_max 4
+++XStandardColormap.red_mult 8
+++XStandardColormap.green_max 12
+++XStandardColormap.green_mult 16
+++XStandardColormap.blue_max 20
+++XStandardColormap.blue_mult 24
+++XStandardColormap.base_pixel 28
+++XStandardColormap.visualid 32
+++XStandardColormap.killid 36
+++XStandardColormap 40
+++XComposeStatus.compose_ptr 0
+++XComposeStatus.chars_matched 4
+++XComposeStatus 8
+++AwtGraphicsConfigData.awt_depth 0
+++AwtGraphicsConfigData.awt_cmap 4
+++AwtGraphicsConfigData.awt_visInfo 8
+++AwtGraphicsConfigData.awt_num_colors 48
+++AwtGraphicsConfigData.awtImage 52
+++AwtGraphicsConfigData.AwtColorMatch 56
+++AwtGraphicsConfigData.monoImage 60
+++AwtGraphicsConfigData.monoPixmap 64
+++AwtGraphicsConfigData.monoPixmapWidth 68
+++AwtGraphicsConfigData.monoPixmapHeight 72
+++AwtGraphicsConfigData.monoPixmapGC 76
+++AwtGraphicsConfigData.pixelStride 80
+++AwtGraphicsConfigData.color_data 84
+++AwtGraphicsConfigData.glxInfo 88
+++AwtGraphicsConfigData.isTranslucencySupported 92
+++AwtGraphicsConfigData.renderPictFormat 96
+++AwtGraphicsConfigData 128
+++XColor.pixel 0
+++XColor.red 4
+++XColor.green 6
+++XColor.blue 8
+++XColor.flags 10
+++XColor.pad 11
+++XColor 12
+++XTextProperty.value 0
+++XTextProperty.encoding 4
+++XTextProperty.format 8
+++XTextProperty.nitems 12
+++XTextProperty 16
--- /dev/null
--- /dev/null
++# HG changeset patch
++# User andrew
++# Date 1352129932 0
++# Node ID e9c857dcb964dbfa5eef3a3590244cb4d999cf7a
++# Parent 1406789608b76d0906881979335d685855f44190
++Allow multiple PKCS11 library initialisation to be a non-critical error.
++
++--- a/jdk/src/share/classes/sun/security/pkcs11/Config.java
+++++ b/jdk/src/share/classes/sun/security/pkcs11/Config.java
++@@ -53,6 +53,7 @@ final class Config {
++ static final int ERR_HALT = 1;
++ static final int ERR_IGNORE_ALL = 2;
++ static final int ERR_IGNORE_LIB = 3;
+++ static final int ERR_IGNORE_MULTI_INIT = 4;
++
++ // same as allowSingleThreadedModules but controlled via a system property
++ // and applied to all providers. if set to false, no SunPKCS11 instances
++@@ -1002,6 +1003,8 @@ final class Config {
++ handleStartupErrors = ERR_IGNORE_LIB;
++ } else if (val.equals("halt")) {
++ handleStartupErrors = ERR_HALT;
+++ } else if (val.equals("ignoreMultipleInitialisation")) {
+++ handleStartupErrors = ERR_IGNORE_MULTI_INIT;
++ } else {
++ throw excToken("Invalid value for handleStartupErrors:");
++ }
++--- a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
+++++ b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java
++@@ -168,26 +168,37 @@ public final class SunPKCS11 extends Aut
++ String nssLibraryDirectory = config.getNssLibraryDirectory();
++ String nssSecmodDirectory = config.getNssSecmodDirectory();
++ boolean nssOptimizeSpace = config.getNssOptimizeSpace();
+++ int errorHandling = config.getHandleStartupErrors();
++
++ if (secmod.isInitialized()) {
++ if (nssSecmodDirectory != null) {
++ String s = secmod.getConfigDir();
++ if ((s != null) &&
++ (s.equals(nssSecmodDirectory) == false)) {
++- throw new ProviderException("Secmod directory "
++- + nssSecmodDirectory
++- + " invalid, NSS already initialized with "
++- + s);
+++ String msg = "Secmod directory " + nssSecmodDirectory
+++ + " invalid, NSS already initialized with " + s;
+++ if (errorHandling == Config.ERR_IGNORE_MULTI_INIT ||
+++ errorHandling == Config.ERR_IGNORE_ALL) {
+++ throw new UnsupportedOperationException(msg);
+++ } else {
+++ throw new ProviderException(msg);
+++ }
++ }
++ }
++ if (nssLibraryDirectory != null) {
++ String s = secmod.getLibDir();
++ if ((s != null) &&
++ (s.equals(nssLibraryDirectory) == false)) {
++- throw new ProviderException("NSS library directory "
+++ String msg = "NSS library directory "
++ + nssLibraryDirectory
++ + " invalid, NSS already initialized with "
++- + s);
+++ + s;
+++ if (errorHandling == Config.ERR_IGNORE_MULTI_INIT ||
+++ errorHandling == Config.ERR_IGNORE_ALL) {
+++ throw new UnsupportedOperationException(msg);
+++ } else {
+++ throw new ProviderException(msg);
+++ }
++ }
++ }
++ } else {
--- /dev/null
--- /dev/null
++--- openjdk/hotspot/src/share/vm/oops/arrayKlassKlass.cpp~ 2013-03-04 22:51:00.000000000 +0100
+++++ openjdk/hotspot/src/share/vm/oops/arrayKlassKlass.cpp 2013-04-15 13:57:24.992929086 +0200
++@@ -30,6 +30,7 @@
++ #include "runtime/handles.inline.hpp"
++ #ifndef SERIALGC
++ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
+++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
++ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
++ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
++ #include "memory/cardTableRS.hpp"
++--- openjdk/hotspot/src/share/vm/oops/constantPoolKlass.cpp~ 2013-03-04 22:51:00.000000000 +0100
+++++ openjdk/hotspot/src/share/vm/oops/constantPoolKlass.cpp 2013-04-15 14:02:52.143087149 +0200
++@@ -49,6 +49,7 @@
++ #endif
++ #ifndef SERIALGC
++ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
+++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
++ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
++ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
++ #include "memory/cardTableRS.hpp"
++--- openjdk/hotspot/src/share/vm/oops/cpCacheKlass.cpp~ 2013-03-04 22:51:00.000000000 +0100
+++++ openjdk/hotspot/src/share/vm/oops/cpCacheKlass.cpp 2013-04-15 14:04:45.219838633 +0200
++@@ -35,6 +35,7 @@
++ #include "runtime/handles.inline.hpp"
++ #ifndef SERIALGC
++ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
+++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
++ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
++ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
++ #include "memory/cardTableRS.hpp"
++--- openjdk/hotspot/src/share/vm/oops/instanceKlass.cpp~ 2013-03-04 22:51:00.000000000 +0100
+++++ openjdk/hotspot/src/share/vm/oops/instanceKlass.cpp 2013-04-15 14:07:55.861109867 +0200
++@@ -70,6 +70,7 @@
++ #include "gc_implementation/g1/g1RemSet.inline.hpp"
++ #include "gc_implementation/g1/heapRegionSeq.inline.hpp"
++ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
+++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
++ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
++ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
++ #include "oops/oop.pcgc.inline.hpp"
++--- openjdk/hotspot/src/share/vm/oops/instanceKlassKlass.cpp~ 2013-03-04 22:51:00.000000000 +0100
+++++ openjdk/hotspot/src/share/vm/oops/instanceKlassKlass.cpp 2013-04-15 14:08:53.541485528 +0200
++@@ -44,6 +44,7 @@
++ #include "runtime/fieldDescriptor.hpp"
++ #ifndef SERIALGC
++ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
+++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
++ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
++ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
++ #include "memory/cardTableRS.hpp"
++--- openjdk/hotspot/src/share/vm/oops/instanceMirrorKlass.cpp~ 2013-03-04 22:51:00.000000000 +0100
+++++ openjdk/hotspot/src/share/vm/oops/instanceMirrorKlass.cpp 2013-04-15 14:10:11.162003798 +0200
++@@ -42,6 +42,7 @@
++ #include "gc_implementation/g1/g1RemSet.inline.hpp"
++ #include "gc_implementation/g1/heapRegionSeq.inline.hpp"
++ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
+++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
++ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
++ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
++ #include "oops/oop.pcgc.inline.hpp"
++--- openjdk/hotspot/src/share/vm/oops/instanceRefKlass.cpp~ 2013-03-04 22:51:00.000000000 +0100
+++++ openjdk/hotspot/src/share/vm/oops/instanceRefKlass.cpp 2013-04-15 14:11:11.726403390 +0200
++@@ -39,6 +39,7 @@
++ #include "gc_implementation/g1/g1RemSet.inline.hpp"
++ #include "gc_implementation/g1/heapRegionSeq.inline.hpp"
++ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
+++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
++ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
++ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
++ #include "oops/oop.pcgc.inline.hpp"
++--- openjdk/hotspot/src/share/vm/oops/klassKlass.cpp~ 2013-03-04 22:51:00.000000000 +0100
+++++ openjdk/hotspot/src/share/vm/oops/klassKlass.cpp 2013-04-15 14:13:01.999133769 +0200
++@@ -42,6 +42,7 @@
++ #include "runtime/handles.inline.hpp"
++ #ifndef SERIALGC
++ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
+++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
++ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
++ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
++ #include "memory/cardTableRS.hpp"
++--- openjdk/hotspot/src/share/vm/oops/objArrayKlass.cpp~ 2013-03-04 22:51:00.000000000 +0100
+++++ openjdk/hotspot/src/share/vm/oops/objArrayKlass.cpp 2013-04-15 14:16:10.616389484 +0200
++@@ -47,6 +47,7 @@
++ #include "gc_implementation/g1/g1RemSet.inline.hpp"
++ #include "gc_implementation/g1/heapRegionSeq.inline.hpp"
++ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
+++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
++ #include "gc_implementation/parallelScavenge/psCompactionManager.hpp"
++ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
++ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
++--- openjdk/hotspot/src/share/vm/oops/objArrayKlassKlass.cpp~ 2013-03-04 22:51:00.000000000 +0100
+++++ openjdk/hotspot/src/share/vm/oops/objArrayKlassKlass.cpp 2013-04-15 14:17:01.800729154 +0200
++@@ -33,6 +33,7 @@
++ #include "oops/oop.inline2.hpp"
++ #ifndef SERIALGC
++ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
+++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
++ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
++ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
++ #include "memory/cardTableRS.hpp"
++--- openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp~ 2013-03-04 22:51:00.000000000 +0100
+++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp 2013-04-15 14:20:24.782079605 +0200
++@@ -28,6 +28,7 @@
++ #include "gc_implementation/parallelScavenge/cardTableExtension.hpp"
++ #include "gc_implementation/parallelScavenge/gcTaskManager.hpp"
++ #include "gc_implementation/parallelScavenge/psMarkSweep.hpp"
+++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
++ #include "gc_implementation/parallelScavenge/psPromotionManager.hpp"
++ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
++ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
--- /dev/null
--- /dev/null
++--- a/jdk/src/solaris/classes/sun/awt/X11/XWM.java
+++++ b/jdk/src/solaris/classes/sun/awt/X11/XWM.java
++@@ -104,7 +104,8 @@ final class XWM
++ COMPIZ_WM = 12,
++ LG3D_WM = 13,
++ CWM_WM = 14,
++- MUTTER_WM = 15;
+++ MUTTER_WM = 15,
+++ OTHER_NONREPARENTING_WM = 16;
++ public String toString() {
++ switch (WMID) {
++ case NO_WM:
++@@ -601,7 +602,8 @@ final class XWM
++ awtWMNonReparenting = (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) ? 1 : 0;
++ }
++ return (awtWMNonReparenting == 1 || XWM.getWMID() == XWM.COMPIZ_WM
++- || XWM.getWMID() == XWM.LG3D_WM || XWM.getWMID() == XWM.CWM_WM);
+++ || XWM.getWMID() == XWM.LG3D_WM || XWM.getWMID() == XWM.CWM_WM
+++ || XWM.getWMID() == XWM.OTHER_NONREPARENTING_WM);
++ }
++
++ /*
++@@ -796,9 +798,17 @@ final class XWM
++ * supports WIN or _NET wm spec.
++ */
++ else if (l_net_protocol.active()) {
++- awt_wmgr = XWM.OTHER_WM;
+++ if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) {
+++ awt_wmgr = XWM.OTHER_NONREPARENTING_WM;
+++ } else {
+++ awt_wmgr = XWM.OTHER_WM;
+++ }
++ } else if (win.active()) {
++- awt_wmgr = XWM.OTHER_WM;
+++ if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) {
+++ awt_wmgr = XWM.OTHER_NONREPARENTING_WM;
+++ } else {
+++ awt_wmgr = XWM.OTHER_WM;
+++ }
++ }
++ /*
++ * Check for legacy WMs.
++@@ -809,6 +819,8 @@ final class XWM
++ awt_wmgr = XWM.MOTIF_WM;
++ } else if (isOpenLook()) {
++ awt_wmgr = XWM.OPENLOOK_WM;
+++ } else if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) {
+++ awt_wmgr = XWM.OTHER_NONREPARENTING_WM;
++ } else {
++ awt_wmgr = XWM.OTHER_WM;
++ }
++@@ -1337,6 +1349,7 @@ final class XWM
++ res = new Insets(28, 6, 6, 6);
++ break;
++ case NO_WM:
+++ case OTHER_NONREPARENTING_WM:
++ case LG3D_WM:
++ res = zeroInsets;
++ break;
--- /dev/null
--- /dev/null
++--- a/hotspot/make/linux/makefiles/jsig.make
+++++ b/hotspot/make/linux/makefiles/jsig.make
++@@ -54,7 +54,9 @@ endif
++ $(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE)
++ @echo Making signal interposition lib...
++ $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
++- $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) -o $@ $< -ldl
+++ $(LFLAGS_JSIG) $(EXTRA_LDFLAGS) \
+++ $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) \
+++ -o $@ $< -ldl
++ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++ ifneq ($(STRIP_POLICY),no_strip)
++ $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
++--- a/hotspot/make/linux/makefiles/vm.make
+++++ b/hotspot/make/linux/makefiles/vm.make
++@@ -122,6 +122,7 @@ CFLAGS += $(CFLAGS/NOEX)
++
++ # Extra flags from gnumake's invocation or environment
++ CFLAGS += $(EXTRA_CFLAGS)
+++CXXFLAGS += $(EXTRA_CXXFLAGS)
++ LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
++
++ # Don't set excutable bit on stack segment
--- /dev/null
--- /dev/null
++--- a/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
+++++ b/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
++@@ -34,9 +34,13 @@
++ define_pd_global(bool, DontYieldALot, false);
++ define_pd_global(intx, ThreadStackSize, 1536);
++ #ifdef _LP64
++-define_pd_global(intx, VMThreadStackSize, 1024);
+++#if defined (_LITTLE_ENDIAN) && defined (__powerpc64__)
+++define_pd_global(intx, VMThreadStackSize, 1920);
++ #else
++-define_pd_global(intx, VMThreadStackSize, 512);
+++define_pd_global(intx, VMThreadStackSize, 1280);
+++#endif
+++#else
+++define_pd_global(intx, VMThreadStackSize, 640);
++ #endif // _LP64
++ define_pd_global(intx, CompilerThreadStackSize, 0);
++ define_pd_global(uintx, JVMInvokeMethodSlack, 8192);
++--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++++ b/hotspot/src/os/linux/vm/os_linux.cpp
++@@ -5046,6 +5046,7 @@ void os::init(void) {
++
++ pthread_mutex_init(&dl_mutex, NULL);
++
+++NOT_ZERO (
++ // If the pagesize of the VM is greater than 8K determine the appropriate
++ // number of initial guard pages. The user can change this with the
++ // command line arguments, if needed.
++@@ -5054,6 +5055,7 @@ void os::init(void) {
++ StackRedPages = 1;
++ StackShadowPages = round_to((StackShadowPages*Linux::vm_default_page_size()), vm_page_size()) / vm_page_size();
++ }
+++)
++ }
++
++ // To install functions for atexit system call
++@@ -5108,9 +5110,16 @@ jint os::init_2(void)
++ // size. Add a page for compiler2 recursion in main thread.
++ // Add in 2*BytesPerWord times page size to account for VM stack during
++ // class initialization depending on 32 or 64 bit VM.
+++NOT_ZERO (
++ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
++ (size_t)(StackYellowPages+StackRedPages+StackShadowPages) * Linux::page_size() +
++ (2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::vm_default_page_size());
+++)
+++ZERO_ONLY (
+++ os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
+++ (size_t)(StackYellowPages+StackRedPages+StackShadowPages+
+++ 2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::page_size());
+++)
++
++ size_t threadStackSizeInBytes = ThreadStackSize * K;
++ if (threadStackSizeInBytes != 0 &&
--- /dev/null
--- /dev/null
++# DP: Common bits to configure ppc64le support.
++
++--- a/common/autoconf/hotspot-spec.gmk.in
+++++ b/common/autoconf/hotspot-spec.gmk.in
++@@ -71,6 +71,10 @@ ISA_DIR=$(OPENJDK_TARGET_CPU_ISADIR)
++ LIBARCH=$(OPENJDK_TARGET_CPU_LEGACY_LIB)
++ # Set the cpu architecture
++ ARCH=$(OPENJDK_TARGET_CPU_ARCH)
+++# ppc64le uses the HotSpot ppc64 build
+++ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
+++ ARCH=ppc64
+++endif
++ # Legacy setting for building for a 64 bit machine.
++ # If yes then this expands to _LP64:=1
++ @LP64@
++--- a/common/autoconf/platform.m4
+++++ b/common/autoconf/platform.m4
++@@ -122,7 +122,7 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
++ VAR_CPU_ENDIAN=big
++ ;;
++ powerpc64le)
++- VAR_CPU=ppc64
+++ VAR_CPU=ppc64le
++ VAR_CPU_ARCH=ppc
++ VAR_CPU_BITS=64
++ VAR_CPU_ENDIAN=little
++--- a/common/autoconf/toolchain.m4
+++++ b/common/autoconf/toolchain.m4
++@@ -1125,6 +1125,9 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_
++ else
++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN"
++ fi
+++ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then
+++ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DABI_ELFv2"
+++ fi
++ if test "x$OPENJDK_TARGET_OS" = xlinux; then
++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DLINUX"
++ fi
++--- a/jdk/make/lib/SoundLibraries.gmk
+++++ b/jdk/make/lib/SoundLibraries.gmk
++@@ -143,6 +143,10 @@ else
++ ifeq ($(OPENJDK_TARGET_CPU), aarch64)
++ LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64
++ endif
+++
+++ ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
+++ LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64LE
+++ endif
++ endif
++
++ LIBJSOUND_CFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"'
++--- a/jdk/src/share/native/com/sun/media/sound/SoundDefs.h
+++++ b/jdk/src/share/native/com/sun/media/sound/SoundDefs.h
++@@ -44,6 +44,8 @@
++ #define X_ARM 7
++ #define X_PPC 8
++ #define X_AARCH64 9
+++#define X_PPC64 10
+++#define X_PPC64LE 11
++
++ // **********************************
++ // Make sure you set X_PLATFORM and X_ARCH defines correctly.
++--- /dev/null
+++++ b/jdk/src/solaris/bin/ppc64le/jvm.cfg
++@@ -0,0 +1,33 @@
+++# 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.
+++#
+++# List of JVMs that can be used as an option to java, javac, etc.
+++# Order is important -- first in this list is the default JVM.
+++# NOTE that this both this file and its format are UNSUPPORTED and
+++# WILL GO AWAY in a future release.
+++#
+++# You may also select a JVM in an arbitrary location with the
+++# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
+++# and may not be available in a future release.
+++#
+++-server KNOWN
++--- a/hotspot/make/defs.make
+++++ b/hotspot/make/defs.make
++@@ -326,6 +326,13 @@ ifneq ($(OSNAME),windows)
++ LIBARCH/ppc64 = ppc64
++ LIBARCH/zero = $(ZERO_LIBARCH)
++
+++ # Override LIBARCH for ppc64le
+++ ifeq ($(ARCH), ppc64)
+++ ifeq ($(OPENJDK_TARGET_CPU_ENDIAN), little)
+++ LIBARCH = ppc64le
+++ endif
+++ endif
+++
++ LP64_ARCH += sparcv9 amd64 ia64 ppc64 zero
++ endif
++
--- /dev/null
--- /dev/null
++commit 25b39703b2c3468f666f6175ff94e46526d402a7
++Author: Xerxes Rånby <xerxes@gudinna.com>
++Date: Tue Dec 22 13:33:44 2015 +0100
++
++ OpenJDK 8: Add JDK8u JDK-8061651 API. IcedTea PR2775.
++
++ Implement minimal JVM functionality to tell JDK8u that the JDK-8061651 API is unsupported by JamVM
++
++ JVM_GetResourceLookupCacheURLs
++ JVM_GetResourceLookupCache
++ JVM_KnownToNotExist
++
++ Signed-off-by: Xerxes Rånby <xerxes@gudinna.com>
++
++diff --git a/src/classlib/openjdk/jvm.c b/src/classlib/openjdk/jvm.c
++index 971ac75..955621d 100644
++--- jamvm.old/jamvm/src/classlib/openjdk/jvm.c
+++++ jamvm/jamvm/src/classlib/openjdk/jvm.c
++@@ -666,6 +666,35 @@ void JVM_SetClassSigners(JNIEnv *env, jclass cls, jobjectArray signers) {
++ }
++
++
+++/* JVM_GetResourceLookupCacheURLs
+++ is part of the
+++ JDK-8061651 JDK8u API
+++*/
+++
+++jobjectArray JVM_GetResourceLookupCacheURLs(JNIEnv *env, jobject loader) {
+++ return NULL; // tell OpenJDK 8 that the lookup cache API is unavailable
+++}
+++
+++/* JVM_GetResourceLookupCache
+++ is unused however it is part of the
+++ JDK-8061651 JDK8u API
+++*/
+++
+++jintArray JVM_GetResourceLookupCache(JNIEnv *env, jobject loader, const char *resource_name) {
+++ UNIMPLEMENTED("JVM_GetResourceLookupCache");
+++ return NULL; // tell OpenJDK 8 that the lookup cache is unavailable
+++}
+++
+++/* JVM_KnownToNotExist
+++ is unused however it is part of the
+++ JDK-8061651 JDK8u API
+++*/
+++
+++jboolean JVM_KnownToNotExist(JNIEnv *env, jobject loader, const char *classname) {
+++ UNIMPLEMENTED("JVM_KnownToNotExist");
+++ return JNI_FALSE; // tell OpenJDK 8 we don't know whether it exists or not
+++}
+++
++ /* JVM_GetProtectionDomain */
++
++ jobject JVM_GetProtectionDomain(JNIEnv *env, jclass cls) {
--- /dev/null
--- /dev/null
++# DP: Set initial VMThreadStackSize to 1600 on s390x
++
++--- a/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
+++++ b/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
++@@ -36,6 +36,8 @@ define_pd_global(intx, ThreadStackSize,
++ #ifdef _LP64
++ #if defined (_LITTLE_ENDIAN) && defined (__powerpc64__)
++ define_pd_global(intx, VMThreadStackSize, 1920);
+++#elif defined(__s390x__)
+++define_pd_global(intx, VMThreadStackSize, 1600);
++ #else
++ define_pd_global(intx, VMThreadStackSize, 1280);
++ #endif
--- /dev/null
--- /dev/null
++--- openjdk/jdk/src/solaris/bin/java_md.c.orig
+++++ openjdk/jdk/src/solaris/bin/java_md.c
++@@ -688,8 +688,19 @@
++ char buf[PATH_MAX+1];
++ int len = readlink(self, buf, PATH_MAX);
++ if (len >= 0) {
+++ const char* prefixes[] = {"/cow/", "/persistmnt/", "/rofs/", "/rwfs/", "/squashmnt/", NULL};
+++ const char **prefix;
+++ size_t prefix_len = 0;
++ buf[len] = '\0'; /* readlink doesn't nul terminate */
++- exec_path = JLI_StringDup(buf);
+++ for (prefix = prefixes; *prefix; prefix++) {
+++ prefix_len = strlen(buf) < strlen(*prefix) ? strlen(buf) : strlen(*prefix);
+++ if (!strncmp(*prefix, buf, prefix_len)) {
+++ prefix_len--;
+++ break;
+++ }
+++ prefix_len = 0;
+++ }
+++ exec_path = JLI_StringDup(buf + prefix_len);
++ }
++ }
++ #else /* !__solaris__ && !__linux */
++--- openjdk/hotspot/src/os/posix/launcher/java_md.c.orig
+++++ openjdk/hotspot/src/os/posix/launcher/java_md.c
++@@ -967,8 +967,19 @@
++ char buf[PATH_MAX+1];
++ int len = readlink(self, buf, PATH_MAX);
++ if (len >= 0) {
++- buf[len] = '\0'; /* readlink doesn't nul terminate */
++- exec_path = JLI_StringDup(buf);
+++ buf[len] = '\0'; /* readlink doesn't nul terminate */
+++ const char* prefixes[] = {"/cow/", "/persistmnt/", "/rofs/", "/rwfs/", "/squashmnt/", NULL};
+++ const char **prefix;
+++ size_t prefix_len = 0;
+++ for (prefix = prefixes; *prefix; prefix++) {
+++ prefix_len = strlen(buf) < strlen(*prefix) ? strlen(buf) : strlen(*prefix);
+++ if (!strncmp(*prefix, buf, prefix_len)) {
+++ prefix_len--;
+++ break;
+++ }
+++ prefix_len = 0;
+++ }
+++ exec_path = JLI_StringDup(buf + prefix_len);
++ }
++ }
++ #else /* !__sun && !__linux */
--- /dev/null
--- /dev/null
++--- a/jdk/make/CompileDemos.gmk
+++++ b/jdk/make/CompileDemos.gmk
++@@ -235,10 +235,12 @@ define SetupJVMTIDemo
++ $1_CXXFLAGS := $(CXXFLAGS_JDKLIB) -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 \
++ $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3 \
++ $(CXXFLAGS_DEBUG_SYMBOLS)
+++ ifeq ($(OPENJDK_TARGET_OS), solaris)
++ ifeq ($1-$(OPENJDK_TARGET_CPU_ARCH), waiters-sparc)
++ $1_FILTER := -xregs=no%appl
++ $1_CXXFLAGS := $$(filter-out $$($1_FILTER), $$($1_CXXFLAGS))
++ endif
+++ endif
++
++ # Workaround for CFLAGS_JDKLIB containing ',' on solaris. If this is added as 'CFLAGS' to the
++ # eval call below, the comma gets expanded too early.
--- /dev/null
--- /dev/null
++Author: Damien Raude-Morvan <drazzib@debian.org>
++Description: Fix FTBFS on sparc on stubGenerator_sparc.cpp by using explicit class typedef.
++
++--- a/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp
+++++ b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp
++@@ -1055,7 +1055,7 @@
++ Label& L_loop, bool use_prefetch, bool use_bis);
++
++ void disjoint_copy_core(Register from, Register to, Register count, int log2_elem_size,
++- int iter_size, CopyLoopFunc copy_loop_func) {
+++ int iter_size, StubGenerator::CopyLoopFunc copy_loop_func) {
++ Label L_copy;
++
++ assert(log2_elem_size <= 3, "the following code should be changed");
++@@ -1206,7 +1206,8 @@
++ __ inc(from, 8);
++ __ sllx(O3, left_shift, O3);
++
++- disjoint_copy_core(from, to, count, log2_elem_size, 16, copy_16_bytes_shift_loop);
+++ StubGenerator::CopyLoopFunc aFunction = &StubGenerator::copy_16_bytes_shift_loop;
+++ disjoint_copy_core(from, to, count, log2_elem_size, 16, aFunction);
++
++ __ inccc(count, count_dec>>1 ); // + 8 bytes
++ __ brx(Assembler::negative, true, Assembler::pn, L_copy_last_bytes);
++@@ -2085,7 +2086,8 @@
++ __ dec(count, 4); // The cmp at the beginning guaranty count >= 4
++ __ sllx(O3, 32, O3);
++
++- disjoint_copy_core(from, to, count, 2, 16, copy_16_bytes_loop);
+++ StubGenerator::CopyLoopFunc aFunction = &StubGenerator::copy_16_bytes_loop;
+++ disjoint_copy_core(from, to, count, 2, 16, aFunction);
++
++ __ br(Assembler::always, false, Assembler::pt, L_copy_4_bytes);
++ __ delayed()->inc(count, 4); // restore 'count'
++@@ -2366,7 +2368,8 @@
++ // count >= 0 (original count - 8)
++ __ mov(from, from64);
++
++- disjoint_copy_core(from64, to64, count, 3, 64, copy_64_bytes_loop);
+++ StubGenerator::CopyLoopFunc aFunction = &StubGenerator::copy_64_bytes_loop;
+++ disjoint_copy_core(from64, to64, count, 3, 64, aFunction);
++
++ // Restore O4(offset0), O5(offset8)
++ __ sub(from64, from, offset0);
--- /dev/null
--- /dev/null
++# unused patch (work in progress for PARISC support)
++
++--- openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp.old 2010-01-06 16:30:02.000000000 +0100
+++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp 2010-01-06 23:14:47.000000000 +0100
++@@ -144,8 +144,13 @@
++ address addr = (address) info->si_addr;
++
++ // check if fault address is within thread stack
+++#ifdef __hppa__
+++ if (addr > thread->stack_base() &&
+++ addr <= thread->stack_base() + thread->stack_size()) {
+++#else
++ if (addr < thread->stack_base() &&
++ addr >= thread->stack_base() - thread->stack_size()) {
+++#endif
++ // stack overflow
++ if (thread->in_stack_yellow_zone(addr)) {
++ thread->disable_stack_yellow_zone();
++@@ -294,7 +299,11 @@
++ if (res != 0) {
++ fatal1("pthread_attr_getstack failed with errno = %d", res);
++ }
+++#ifdef __hppa__
+++ address stack_top = stack_bottom - stack_bytes;
+++#else
++ address stack_top = stack_bottom + stack_bytes;
+++#endif
++
++ // The block of memory returned by pthread_attr_getstack() includes
++ // guard pages where present. We need to trim these off.
++@@ -321,7 +330,11 @@
++ stack_bottom += (total_pages - guard_pages) / 2 * page_bytes;
++ #endif // IA64
++
+++#ifdef __hppa__
+++ stack_bottom -= guard_bytes;
+++#else
++ stack_bottom += guard_bytes;
+++#endif
++
++ pthread_attr_destroy(&attr);
++
++@@ -329,19 +342,36 @@
++ // by pthread_attr_getstack is the maximum size it could possibly
++ // be given what currently mapped. This can be huge, so we cap it.
++ if (os::Linux::is_initial_thread()) {
+++#ifdef __hppa__
+++ stack_bytes = stack_bottom - stack_top;
+++#else
++ stack_bytes = stack_top - stack_bottom;
+++#endif
++
++ if (stack_bytes > JavaThread::stack_size_at_create())
++ stack_bytes = JavaThread::stack_size_at_create();
++
+++#ifdef __hppa__
+++ stack_bottom = stack_top + stack_bytes;
+++#else
++ stack_bottom = stack_top - stack_bytes;
+++#endif
++ }
++
+++#ifdef __hppa__
+++ assert(os::current_stack_pointer() <= stack_bottom, "should do");
+++ assert(os::current_stack_pointer() > stack_top, "should do");
+++#else
++ assert(os::current_stack_pointer() >= stack_bottom, "should do");
++ assert(os::current_stack_pointer() < stack_top, "should do");
+++#endif
++
++ *bottom = stack_bottom;
+++#ifdef __hppa__
+++ *size = stack_bottom - stack_top;
+++#else
++ *size = stack_top - stack_bottom;
+++#endif
++ }
++
++ address os::current_stack_base() {
++--- openjdk/hotspot/src/share/vm/runtime/thread.cpp.old 2009-10-02 23:16:39.000000000 +0200
+++++ openjdk/hotspot/src/share/vm/runtime/thread.cpp 2010-01-06 23:31:24.000000000 +0100
++@@ -713,8 +713,13 @@
++ else if (is_ConcurrentGC_thread()) st->print("ConcurrentGCThread");
++ else st->print("Thread");
++
+++#ifdef __hppa__
++ st->print(" [stack: " PTR_FORMAT "," PTR_FORMAT "]",
++ _stack_base - _stack_size, _stack_base);
+++#else
+++ st->print(" [stack: " PTR_FORMAT "," PTR_FORMAT "]",
+++ _stack_base + _stack_size, _stack_base);
+++#endif
++
++ if (osthread()) {
++ st->print(" [id=%d]", osthread()->thread_id());
++@@ -792,7 +797,11 @@
++ bool Thread::is_in_stack(address adr) const {
++ assert(Thread::current() == this, "is_in_stack can only be called from current thread");
++ address end = os::current_stack_pointer();
+++#ifdef __hppa__
+++ if (stack_base() <= adr && adr <= end) return true;
+++#else
++ if (stack_base() >= adr && adr >= end) return true;
+++#endif
++
++ return false;
++ }
++@@ -804,7 +813,11 @@
++ // should be revisited, and they should be removed if possible.
++
++ bool Thread::is_lock_owned(address adr) const {
+++#ifdef __hppa__
+++ return (_stack_base <= adr && adr <= (_stack_base + _stack_size));
+++#else
++ return (_stack_base >= adr && adr >= (_stack_base - _stack_size));
+++#endif
++ }
++
++ bool Thread::set_as_starting_thread() {
++@@ -2108,7 +2121,11 @@
++
++ void JavaThread::create_stack_guard_pages() {
++ if (! os::uses_stack_guard_pages() || _stack_guard_state != stack_guard_unused) return;
+++#ifdef __hppa__
+++ address low_addr = stack_base();
+++#else
++ address low_addr = stack_base() - stack_size();
+++#endif
++ size_t len = (StackYellowPages + StackRedPages) * os::vm_page_size();
++
++ int allocate = os::allocate_stack_guard_pages();
++@@ -2131,7 +2148,11 @@
++
++ void JavaThread::remove_stack_guard_pages() {
++ if (_stack_guard_state == stack_guard_unused) return;
+++#ifdef __hppa__
+++ address low_addr = stack_base();
+++#else
++ address low_addr = stack_base() - stack_size();
+++#endif
++ size_t len = (StackYellowPages + StackRedPages) * os::vm_page_size();
++
++ if (os::allocate_stack_guard_pages()) {
++@@ -2156,10 +2177,17 @@
++
++ // The base notation is from the stacks point of view, growing downward.
++ // We need to adjust it to work correctly with guard_memory()
+++#ifdef __hppa__
+++ address base = stack_yellow_zone_base() + stack_yellow_zone_size();
+++
+++ guarantee(base > stack_base(),"Error calculating stack yellow zone");
+++ guarantee(base > os::current_stack_pointer(),"Error calculating stack yellow zone");
+++#else
++ address base = stack_yellow_zone_base() - stack_yellow_zone_size();
++
++ guarantee(base < stack_base(),"Error calculating stack yellow zone");
++ guarantee(base < os::current_stack_pointer(),"Error calculating stack yellow zone");
+++#endif
++
++ if (os::guard_memory((char *) base, stack_yellow_zone_size())) {
++ _stack_guard_state = stack_guard_enabled;
++@@ -2178,7 +2206,11 @@
++
++ // The base notation is from the stacks point of view, growing downward.
++ // We need to adjust it to work correctly with guard_memory()
+++#ifdef __hppa__
+++ address base = stack_yellow_zone_base() + stack_yellow_zone_size();
+++#else
++ address base = stack_yellow_zone_base() - stack_yellow_zone_size();
+++#endif
++
++ if (os::unguard_memory((char *)base, stack_yellow_zone_size())) {
++ _stack_guard_state = stack_guard_yellow_disabled;
++@@ -2192,10 +2224,17 @@
++ // The base notation is from the stacks point of view, growing downward.
++ // We need to adjust it to work correctly with guard_memory()
++ assert(_stack_guard_state != stack_guard_unused, "must be using guard pages.");
+++#ifdef __hppa__
+++ address base = stack_red_zone_base() + stack_red_zone_size();
+++
+++ guarantee(base > stack_base(),"Error calculating stack red zone");
+++ guarantee(base > os::current_stack_pointer(),"Error calculating stack red zone");
+++#else
++ address base = stack_red_zone_base() - stack_red_zone_size();
++
++ guarantee(base < stack_base(),"Error calculating stack red zone");
++ guarantee(base < os::current_stack_pointer(),"Error calculating stack red zone");
+++#endif
++
++ if(!os::guard_memory((char *) base, stack_red_zone_size())) {
++ warning("Attempt to guard stack red zone failed.");
++@@ -2206,7 +2245,11 @@
++ // The base notation is from the stacks point of view, growing downward.
++ // We need to adjust it to work correctly with guard_memory()
++ assert(_stack_guard_state != stack_guard_unused, "must be using guard pages.");
+++#ifdef __hppa__
+++ address base = stack_red_zone_base() + stack_red_zone_size();
+++#else
++ address base = stack_red_zone_base() - stack_red_zone_size();
+++#endif
++ if (!os::unguard_memory((char *)base, stack_red_zone_size())) {
++ warning("Attempt to unguard stack red zone failed.");
++ }
++@@ -2451,8 +2494,13 @@
++ if (osthread()) {
++ st->print(", id=%d", osthread()->thread_id());
++ }
+++#ifdef __hppa__
+++ st->print(", stack(" PTR_FORMAT "," PTR_FORMAT ")",
+++ _stack_base + _stack_size, _stack_base);
+++#else
++ st->print(", stack(" PTR_FORMAT "," PTR_FORMAT ")",
++ _stack_base - _stack_size, _stack_base);
+++#endif
++ st->print("]");
++ return;
++ }
--- /dev/null
--- /dev/null
++# DP: taken from http://icedtea.classpath.org/wiki/IcedTea_Patches_for_OpenJDK_8
++
++--- a/common/autoconf/libraries.m4
+++++ b/common/autoconf/libraries.m4
++@@ -845,6 +845,46 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS],
++
++ ###############################################################################
++ #
+++ # Check for the lcms2 library
+++ #
+++
+++ AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms],
+++ [use lcms2 from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])])
+++
+++ AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile,
+++ [ LCMS_FOUND=yes ],
+++ [ LCMS_FOUND=no ])
+++
+++ AC_MSG_CHECKING([for which lcms to use])
+++
+++ DEFAULT_LCMS=bundled
+++
+++ #
+++ # If user didn't specify, use DEFAULT_LCMS
+++ #
+++ if test "x${with_lcms}" = "x"; then
+++ with_lcms=${DEFAULT_LCMS}
+++ fi
+++
+++ if test "x${with_lcms}" = "xbundled"; then
+++ USE_EXTERNAL_LCMS=false
+++ AC_MSG_RESULT([bundled])
+++ elif test "x${with_lcms}" = "xsystem"; then
+++ if test "x${LCMS_FOUND}" = "xyes"; then
+++ USE_EXTERNAL_LCMS=true
+++ AC_MSG_RESULT([system])
+++ else
+++ AC_MSG_RESULT([system not found])
+++ AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!])
+++ fi
+++ else
+++ AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or 'bundled'])
+++ fi
+++
+++ AC_SUBST(USE_EXTERNAL_LCMS)
+++
+++ ###############################################################################
+++ #
++ # Check for the png library
++ #
++
++--- a/jdk/make/lib/Awt2dLibraries.gmk
+++++ b/jdk/make/lib/Awt2dLibraries.gmk
++@@ -659,8 +659,8 @@ endif
++ ##########################################################################################
++
++ # TODO: Update awt lib path when awt is converted
++-$(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \
++- LIBRARY := lcms, \
+++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVALCMS, \
+++ LIBRARY := javalcms, \
++ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
++ SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \
++ LANG := C, \
++@@ -679,19 +679,19 @@ $(eval $(call SetupNativeCompilation,BUI
++ LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
++ LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \
++ LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \
++- LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \
+++ LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm -llcms2, \
++ LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm,\
++ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
++ RC_FLAGS := $(RC_FLAGS) \
++- -D "JDK_FNAME=lcms.dll" \
++- -D "JDK_INTERNAL_NAME=lcms" \
+++ -D "JDK_FNAME=javalcms.dll" \
+++ -D "JDK_INTERNAL_NAME=javalcms" \
++ -D "JDK_FTYPE=0x2L", \
++- OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/liblcms, \
+++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjavalcms, \
++ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
++
++-BUILD_LIBRARIES += $(BUILD_LIBLCMS)
+++BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
++
++-$(BUILD_LIBLCMS): $(BUILD_LIBAWT)
+++$(BUILD_LIBJAVALCMS): $(BUILD_LIBAWT)
++
++ ##########################################################################################
++
++--- a/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
+++++ b/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
++@@ -207,7 +207,7 @@ public class LCMS implements PCMM {
++ * disposer frameworks
++ */
++ System.loadLibrary("awt");
++- System.loadLibrary("lcms");
+++ System.loadLibrary("javalcms");
++ return null;
++ }
++ });
--- /dev/null
--- /dev/null
++# DP: S8043805: Allow using a system-installed libjpeg
++# DP: http://hg.openjdk.java.net/jdk9/client/rev/bfd9a3e1aeb5
++# DP: http://hg.openjdk.java.net/jdk9/client/jdk/rev/320743f0b4fc
++
++--- a/common/autoconf/libraries.m4
+++++ b/common/autoconf/libraries.m4
++@@ -774,11 +774,36 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_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_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg],
+++ [use libjpeg from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])])
+++
+++ AC_MSG_CHECKING([for which libjpeg to use])
+++
+++ # default is bundled
+++ DEFAULT_LIBJPEG=bundled
+++
+++ #
+++ # if user didn't specify, use DEFAULT_LIBJPEG
+++ #
+++ if test "x${with_libjpeg}" = "x"; then
+++ with_libjpeg=${DEFAULT_LIBJPEG}
+++ fi
+++
+++ AC_MSG_RESULT(${with_libjpeg})
+++
+++ if test "x${with_libjpeg}" = "xbundled"; then
+++ USE_EXTERNAL_LIBJPEG=false
+++ elif test "x${with_libjpeg}" = "xsystem"; then
+++ AC_CHECK_HEADER(jpeglib.h, [],
+++ [ AC_MSG_ERROR([--with-libjpeg=system specified, but jpeglib.h not found!])])
+++ AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [],
+++ [ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])])
+++
+++ USE_EXTERNAL_LIBJPEG=true
+++ else
+++ AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled'])
+++ fi
+++
++ AC_SUBST(USE_EXTERNAL_LIBJPEG)
++
++ ###############################################################################
++--- a/jdk/make/lib/Awt2dLibraries.gmk
+++++ b/jdk/make/lib/Awt2dLibraries.gmk
++@@ -695,21 +695,24 @@ $(BUILD_LIBLCMS): $(BUILD_LIBAWT)
++
++ ##########################################################################################
++
+++BUILD_LIBJAVAJPEG_DIR := $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
+++
++ ifdef OPENJDK
++- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
+++ BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
++ else
++- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/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)
+++ BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed
+++ BUILD_LIBJAVAJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
+++ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJAVAJPEG_CLOSED_SRC)
++ endif
++
++-BUILD_LIBJPEG_REORDER :=
+++BUILD_LIBJAVAJPEG_REORDER :=
++ ifeq ($(OPENJDK_TARGET_OS), solaris)
++ ifneq ($(OPENJDK_TARGET_CPU), x86_64)
++- BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
+++ BUILD_LIBJAVAJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
++ 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().
++@@ -721,37 +724,50 @@ endif
++ # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
++ # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
++ # ifeq ($(CC_43_OR_NEWER), 1)
++-# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
+++# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered
++ # endif
++ #endif
++
++-$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG, \
++- LIBRARY := jpeg, \
+++ifeq ($(USE_EXTERNAL_LIBJPEG), true)
+++ LIBJPEG_LIBS := -ljpeg
+++ BUILD_LIBJAVAJPEG_INCLUDE_FILES := \
+++ imageIOJPEG.c \
+++ jpegdecoder.c
+++ BUILD_LIBJAVAJPEG_HEADERS :=
+++else
+++ LIBJPEG_LIBS :=
+++ BUILD_LIBJAVAJPEG_INCLUDE_FILES :=
+++ BUILD_LIBJAVAJPEG_HEADERS := -I$(BUILD_LIBJAVAJPEG_DIR)
+++endif
+++
+++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \
+++ LIBRARY := javajpeg, \
++ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
++- SRC := $(BUILD_LIBJPEG_CLOSED_SRC) \
++- $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
+++ SRC := $(BUILD_LIBJAVAJPEG_CLOSED_SRC) \
+++ $(BUILD_LIBJAVAJPEG_DIR), \
+++ INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \
++ LANG := C, \
++ OPTIMIZATION := HIGHEST, \
++ CFLAGS := $(CFLAGS_JDKLIB) \
++- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
++- -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
++- MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \
++- LDFLAGS := $(LDFLAGS_JDKLIB) \
+++ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
+++ $(BUILD_LIBJAVAJPEG_HEADERS), \
+++ MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \
+++ LDFLAGS := $(LDFLAGS_JDKLIB) $(LIBJPEG_LIBS) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \
++ LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
++ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
++ RC_FLAGS := $(RC_FLAGS) \
++- -D "JDK_FNAME=jpeg.dll" \
++- -D "JDK_INTERNAL_NAME=jpeg" \
+++ -D "JDK_FNAME=javajpeg.dll" \
+++ -D "JDK_INTERNAL_NAME=javajpeg" \
++ -D "JDK_FTYPE=0x2L", \
++- REORDER := $(BUILD_LIBJPEG_REORDER), \
+++ REORDER := $(BUILD_LIBJAVAJPEG_REORDER), \
++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjpeg, \
++ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
++
++-$(BUILD_LIBJPEG): $(BUILD_LIBJAVA)
+++$(BUILD_LIBJAVAJPEG): $(BUILD_LIBJAVA)
++
++-BUILD_LIBRARIES += $(BUILD_LIBJPEG)
+++BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG)
++
++ ##########################################################################################
++
++@@ -1142,6 +1158,13 @@ ifndef BUILD_HEADLESS_ONLY
++ GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib
++ endif
++
+++ ifeq ($(USE_EXTERNAL_LIBJPEG), true)
+++ LIBJPEG_LDFLAGS := -ljpeg
+++ else
+++ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
+++ LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
+++ endif
+++
++ ifneq ($(OPENJDK_TARGET_OS), macosx)
++ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
++ else
++@@ -1197,11 +1220,13 @@ ifndef BUILD_HEADLESS_ONLY
++ EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
++ LANG := C, \
++ OPTIMIZATION := LOW, \
++- CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \
+++ CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
+++ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \
++ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \
++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++- LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS), \
+++ LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \
+++ $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \
++ LDFLAGS_SUFFIX_solaris := -lc, \
++ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
++ RC_FLAGS := $(RC_FLAGS) \
++--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
+++++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
++@@ -89,7 +89,7 @@ public class JPEGImageReader extends Ima
++ java.security.AccessController.doPrivileged(
++ new java.security.PrivilegedAction<Void>() {
++ public Void run() {
++- System.loadLibrary("jpeg");
+++ System.loadLibrary("javajpeg");
++ return null;
++ }
++ });
++--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+++++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
++@@ -177,7 +177,7 @@ public class JPEGImageWriter extends Ima
++ java.security.AccessController.doPrivileged(
++ new java.security.PrivilegedAction<Void>() {
++ public Void run() {
++- System.loadLibrary("jpeg");
+++ System.loadLibrary("javajpeg");
++ return null;
++ }
++ });
++--- a/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
+++++ b/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
++@@ -56,7 +56,7 @@ public class JPEGImageDecoder extends Im
++ java.security.AccessController.doPrivileged(
++ new java.security.PrivilegedAction<Void>() {
++ public Void run() {
++- System.loadLibrary("jpeg");
+++ System.loadLibrary("javajpeg");
++ return null;
++ }
++ });
++--- a/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
+++++ b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
++@@ -51,7 +51,7 @@
++
++ /* headers from the JPEG library */
++ #include <jpeglib.h>
++-#include "jerror.h"
+++#include <jerror.h>
++
++ #undef MAX
++ #define MAX(a,b) ((a) > (b) ? (a) : (b))
--- /dev/null
--- /dev/null
++# DP: taken from http://icedtea.classpath.org/wiki/IcedTea_Patches_for_OpenJDK_8
++
++--- a/common/autoconf/libraries.m4
+++++ b/common/autoconf/libraries.m4
++@@ -845,6 +845,47 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS],
++
++ ###############################################################################
++ #
+++ # Check for the png library
+++ #
+++
+++ AC_ARG_WITH(libpng, [AS_HELP_STRING([--with-libpng],
+++ [use libpng from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])])
+++
+++ AC_CHECK_LIB(png, png_sig_cmp,
+++ [ LIBPNG_FOUND=yes ],
+++ [ LIBPNG_FOUND=no ])
+++
+++ AC_MSG_CHECKING([for which libpng to use])
+++
+++ # default is bundled
+++ DEFAULT_LIBPNG=bundled
+++
+++ #
+++ # if user didn't specify, use DEFAULT_LIBPNG
+++ #
+++ if test "x${with_libpng}" = "x"; then
+++ with_libpng=${DEFAULT_libpng}
+++ fi
+++
+++
+++ if test "x${with_libpng}" = "xbundled"; then
+++ USE_EXTERNAL_LIBPNG=false
+++ AC_MSG_RESULT([bundled])
+++ elif test "x${with_libpng}" = "xsystem"; then
+++ if test "x${LIBPNG_FOUND}" = "xyes"; then
+++ USE_EXTERNAL_LIBPNG=true
+++ AC_MSG_RESULT([system])
+++ else
+++ AC_MSG_RESULT([system not found])
+++ AC_MSG_ERROR([--with-libpng=system specified, but no libpng found!])
+++ fi
+++ else
+++ AC_MSG_ERROR([Invalid value of --with-libpng: ${with_libpng}, use 'system' or 'bundled'])
+++ fi
+++ AC_SUBST(USE_EXTERNAL_LIBPNG)
+++
+++ ###############################################################################
+++ #
++ # Check for the zlib library
++ #
++
++--- a/common/autoconf/spec.gmk.in
+++++ b/common/autoconf/spec.gmk.in
++@@ -571,6 +571,7 @@ endif
++ ENABLE_JFR=@ENABLE_JFR@
++ ENABLE_INTREE_EC=@ENABLE_INTREE_EC@
++ USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@
+++USE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@
++ USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@
++ USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@
++ LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@
++--- a/jdk/make/lib/Awt2dLibraries.gmk
+++++ b/jdk/make/lib/Awt2dLibraries.gmk
++@@ -1148,7 +1148,6 @@ endif
++ ifndef BUILD_HEADLESS_ONLY
++ LIBSPLASHSCREEN_DIRS := \
++ $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
++- $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
++ $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
++
++ ifeq ($(USE_EXTERNAL_LIBGIF), true)
++@@ -1165,6 +1164,13 @@ ifndef BUILD_HEADLESS_ONLY
++ LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
++ endif
++
+++ ifeq ($(USE_EXTERNAL_LIBPNG), true)
+++ LIBPNG_LDFLAGS := -lpng
+++ else
+++ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/libpng
+++ LIBPNG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/libpng
+++ endif
+++
++ ifneq ($(OPENJDK_TARGET_OS), macosx)
++ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
++ else
++@@ -1221,12 +1227,12 @@ ifndef BUILD_HEADLESS_ONLY
++ LANG := C, \
++ OPTIMIZATION := LOW, \
++ CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
++- $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \
+++ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(LIBPNG_CFLAGS), \
++ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \
++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++ LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \
++- $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \
+++ $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS) $(LIBPNG_LDFLAGS), \
++ LDFLAGS_SUFFIX_solaris := -lc, \
++ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
++ RC_FLAGS := $(RC_FLAGS) \
++--- a/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
+++++ b/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
++@@ -25,8 +25,7 @@
++
++ #include "splashscreen_impl.h"
++
++-#include "../libpng/png.h"
++-
+++#include <png.h>
++ #include <setjmp.h>
++
++ #define SIG_BYTES 8
--- /dev/null
--- /dev/null
++--- a/common/autoconf/libraries.m4
+++++ b/common/autoconf/libraries.m4
++@@ -926,6 +926,53 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS],
++
++ ###############################################################################
++ #
+++ # Check for the pcsclite library
+++ #
+++
+++ AC_ARG_WITH(libpcsclite, [AS_HELP_STRING([--with-libpcsclite],
+++ [use libpcsclite from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])])
+++
+++ AC_CHECK_LIB(pcsclite, SCardConnect,
+++ [ LIBPCSCLITE_FOUND=yes ],
+++ [ LIBPCSCLITE_FOUND=no ])
+++
+++ AC_MSG_CHECKING([for which libpcsclite to use])
+++
+++ DEFAULT_LIBPCSCLITE=bundled
+++
+++ if test "x${LIBPCSCLITE_FOUND}" != "xyes"; then
+++ #
+++ # If we don't find any system...set default to bundled
+++ #
+++ DEFAULT_LIBPCSCLITE=bundled
+++ fi
+++
+++ #
+++ # If user didn't specify, use DEFAULT_PCSC
+++ #
+++ if test "x${with_libpcsclite}" = "x"; then
+++ with_libpcsclite=${DEFAULT_LIBPCSCLITE}
+++ fi
+++
+++ if test "x${with_libpcsclite}" = "xbundled"; then
+++ USE_EXTERNAL_LIBPCSCLITE=false
+++ AC_MSG_RESULT([bundled])
+++ elif test "x${with_libpcsclite}" = "xsystem"; then
+++ if test "x${LIBPCSCLITE_FOUND}" = "xyes"; then
+++ USE_EXTERNAL_LIBPCSCLITE=true
+++ AC_MSG_RESULT([system])
+++ else
+++ AC_MSG_RESULT([system not found])
+++ AC_MSG_ERROR([--with-libpcsclite=system specified, but no libpcsclite found!])
+++ fi
+++ else
+++ AC_MSG_ERROR([Invalid value for --with-libpcsclite: ${with_libpcsclite}, use 'system' or 'bundled'])
+++ fi
+++
+++ AC_SUBST(USE_EXTERNAL_LIBPCSCLITE)
+++
+++ ###############################################################################
+++ #
++ # Check for the zlib library
++ #
++
++--- a/common/autoconf/spec.gmk.in
+++++ b/common/autoconf/spec.gmk.in
++@@ -573,6 +573,7 @@ ENABLE_INTREE_EC=@ENABLE_INTREE_EC@
++ USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@
++ USE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@
++ USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@
+++USE_EXTERNAL_LIBPCSCLITE:=@USE_EXTERNAL_LIBPCSCLITE@
++ USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@
++ LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@
++ MSVCR_DLL:=@MSVCR_DLL@
++--- a/jdk/make/lib/SecurityLibraries.gmk
+++++ b/jdk/make/lib/SecurityLibraries.gmk
++@@ -75,11 +75,11 @@ $(eval $(call SetupNativeCompilation,BUI
++ CFLAGS := $(CFLAGS_JDKLIB) \
++ -I$(JDK_TOPDIR)/src/share/native/sun/security/smartcardio \
++ -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio \
++- -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio/MUSCLE, \
+++ -I/usr/include/PCSC -DUSE_SYSTEM_LIBPCSCLITE, \
++ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libj2pcsc/mapfile-vers, \
++ LDFLAGS := $(LDFLAGS_JDKLIB) \
++ $(call SET_SHARED_LIBRARY_ORIGIN), \
++- LDFLAGS_SUFFIX_posix := $(LIBDL), \
+++ LDFLAGS_SUFFIX_posix := -lpcsclite $(LIBDL), \
++ LDFLAGS_SUFFIX_windows := winscard.lib, \
++ LDFLAGS_SUFFIX_solaris := -lc, \
++ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
++--- a/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.c
+++++ b/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.c
++@@ -36,6 +36,7 @@
++
++ #include "pcsc_md.h"
++
+++#ifndef USE_SYSTEM_LIBPCSCLITE
++ void *hModule;
++ FPTR_SCardEstablishContext scardEstablishContext;
++ FPTR_SCardConnect scardConnect;
++@@ -47,6 +48,7 @@ FPTR_SCardListReaders scardListReaders;
++ FPTR_SCardBeginTransaction scardBeginTransaction;
++ FPTR_SCardEndTransaction scardEndTransaction;
++ FPTR_SCardControl scardControl;
+++#endif
++
++ /*
++ * Throws a Java Exception by name
++@@ -75,7 +77,9 @@ void throwIOException(JNIEnv *env, const
++ throwByName(env, "java/io/IOException", msg);
++ }
++
+++#ifndef USE_SYSTEM_LIBPCSCLITE
++ void *findFunction(JNIEnv *env, void *hModule, char *functionName) {
+++ return NULL;
++ void *fAddress = dlsym(hModule, functionName);
++ if (fAddress == NULL) {
++ char errorMessage[256];
++@@ -85,9 +89,11 @@ void *findFunction(JNIEnv *env, void *hM
++ }
++ return fAddress;
++ }
+++#endif
++
++ JNIEXPORT void JNICALL Java_sun_security_smartcardio_PlatformPCSC_initialize
++ (JNIEnv *env, jclass thisClass, jstring jLibName) {
+++#ifndef USE_SYSTEM_LIBPCSCLITE
++ const char *libName = (*env)->GetStringUTFChars(env, jLibName, NULL);
++ if (libName == NULL) {
++ throwNullPointerException(env, "PCSC library name is null");
++@@ -141,4 +147,5 @@ JNIEXPORT void JNICALL Java_sun_security
++ #else
++ scardControl = (FPTR_SCardControl) findFunction(env, hModule, "SCardControl132");
++ #endif // __APPLE__
+++#endif
++ }
++--- a/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.h
+++++ b/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.h
++@@ -23,6 +23,8 @@
++ * questions.
++ */
++
+++#ifndef USE_SYSTEM_LIBPCSCLITE
+++
++ typedef LONG (*FPTR_SCardEstablishContext)(ULONG dwScope,
++ const void *pvReserved1,
++ const void *pvReserved2,
++@@ -110,3 +112,41 @@ extern FPTR_SCardListReaders scardListRe
++ extern FPTR_SCardBeginTransaction scardBeginTransaction;
++ extern FPTR_SCardEndTransaction scardEndTransaction;
++ extern FPTR_SCardControl scardControl;
+++
+++#else
+++
+++#define CALL_SCardEstablishContext(dwScope, pvReserved1, pvReserved2, phContext) \
+++ (SCardEstablishContext(dwScope, pvReserved1, pvReserved2, phContext))
+++
+++#define CALL_SCardConnect(hContext, szReader, dwSharedMode, dwPreferredProtocols, phCard, pdwActiveProtocols) \
+++ (SCardConnect(hContext, szReader, dwSharedMode, dwPreferredProtocols, phCard, pdwActiveProtocols))
+++
+++#define CALL_SCardDisconnect(hCard, dwDisposition) \
+++ (SCardDisconnect(hCard, dwDisposition))
+++
+++#define CALL_SCardStatus(hCard, mszReaderNames, pcchReaderLen, pdwState, pdwProtocol, pbAtr, pcbAtrLen) \
+++ (SCardStatus(hCard, mszReaderNames, pcchReaderLen, pdwState, pdwProtocol, pbAtr, pcbAtrLen))
+++
+++#define CALL_SCardGetStatusChange(hContext, dwTimeout, rgReaderStates, cReaders) \
+++ (SCardGetStatusChange(hContext, dwTimeout, rgReaderStates, cReaders))
+++
+++#define CALL_SCardTransmit(hCard, pioSendPci, pbSendBuffer, cbSendLength, \
+++ pioRecvPci, pbRecvBuffer, pcbRecvLength) \
+++ (SCardTransmit(hCard, pioSendPci, pbSendBuffer, cbSendLength, \
+++ pioRecvPci, pbRecvBuffer, pcbRecvLength))
+++
+++#define CALL_SCardListReaders(hContext, mszGroups, mszReaders, pcchReaders) \
+++ (SCardListReaders(hContext, mszGroups, mszReaders, pcchReaders))
+++
+++#define CALL_SCardBeginTransaction(hCard) \
+++ (SCardBeginTransaction(hCard))
+++
+++#define CALL_SCardEndTransaction(hCard, dwDisposition) \
+++ (SCardEndTransaction(hCard, dwDisposition))
+++
+++#define CALL_SCardControl(hCard, dwControlCode, pbSendBuffer, cbSendLength, \
+++ pbRecvBuffer, pcbRecvLength, lpBytesReturned) \
+++ (SCardControl(hCard, dwControlCode, pbSendBuffer, cbSendLength, \
+++ pbRecvBuffer, pcbRecvLength, lpBytesReturned))
+++
+++#endif
--- /dev/null
--- /dev/null
++--- a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
+++++ b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
++@@ -890,7 +890,7 @@ void os::verify_stack_alignment() {
++ * updates (JDK-8023956).
++ */
++ void os::workaround_expand_exec_shield_cs_limit() {
++-#if defined(IA32)
+++#if defined(IA32) && !defined(ZERO)
++ size_t page_size = os::vm_page_size();
++
++ /*
++--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++++ b/hotspot/src/os/linux/vm/os_linux.cpp
++@@ -5137,7 +5137,7 @@ ZERO_ONLY (
++
++ Linux::capture_initial_stack(JavaThread::stack_size_at_create());
++
++-#if defined(IA32)
+++#if defined(IA32) && !defined(ZERO)
++ workaround_expand_exec_shield_cs_limit();
++ #endif
++
--- /dev/null
--- /dev/null
++# DP: Add support for zero architectures alpha, m68k, mips*, sh4
++
++--- a/common/autoconf/platform.m4
+++++ b/common/autoconf/platform.m4
++@@ -42,6 +42,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
++ VAR_CPU_BITS=32
++ VAR_CPU_ENDIAN=little
++ ;;
+++ alpha*)
+++ VAR_CPU=alpha
+++ VAR_CPU_ARCH=alpha
+++ VAR_CPU_BITS=64
+++ VAR_CPU_ENDIAN=little
+++ ;;
++ arm*)
++ VAR_CPU=arm
++ VAR_CPU_ARCH=arm
++@@ -54,6 +60,54 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
++ VAR_CPU_BITS=64
++ VAR_CPU_ENDIAN=little
++ ;;
+++ ia64)
+++ VAR_CPU=ia64
+++ VAR_CPU_ARCH=ia64
+++ VAR_CPU_BITS=64
+++ VAR_CPU_ENDIAN=little
+++ ;;
+++ m68k)
+++ VAR_CPU=m68k
+++ VAR_CPU_ARCH=m68k
+++ VAR_CPU_BITS=32
+++ VAR_CPU_ENDIAN=big
+++ ;;
+++ mips)
+++ VAR_CPU=mips
+++ VAR_CPU_ARCH=mips
+++ VAR_CPU_BITS=32
+++ VAR_CPU_ENDIAN=big
+++ ;;
+++ mipsel)
+++ VAR_CPU=mipsel
+++ VAR_CPU_ARCH=mipsel
+++ VAR_CPU_BITS=32
+++ VAR_CPU_ENDIAN=little
+++ ;;
+++ mipsn32)
+++ VAR_CPU=mipsn32
+++ VAR_CPU_ARCH=mipsn32
+++ VAR_CPU_BITS=32
+++ VAR_CPU_ENDIAN=big
+++ ;;
+++ mipsn32el)
+++ VAR_CPU=mipsn32el
+++ VAR_CPU_ARCH=mipsn32el
+++ VAR_CPU_BITS=32
+++ VAR_CPU_ENDIAN=little
+++ ;;
+++ mips64)
+++ VAR_CPU=mips64
+++ VAR_CPU_ARCH=mips64
+++ VAR_CPU_BITS=64
+++ VAR_CPU_ENDIAN=big
+++ ;;
+++ mips64el)
+++ VAR_CPU=mips64el
+++ VAR_CPU_ARCH=mips64el
+++ VAR_CPU_BITS=64
+++ VAR_CPU_ENDIAN=little
+++ ;;
++ powerpc)
++ VAR_CPU=ppc
++ VAR_CPU_ARCH=ppc
++@@ -72,6 +126,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
++ VAR_CPU_BITS=64
++ VAR_CPU_ENDIAN=little
++ ;;
+++ sh*)
+++ VAR_CPU=sh
+++ VAR_CPU_ARCH=sh
+++ VAR_CPU_BITS=32
+++ VAR_CPU_ENDIAN=little
+++ ;;
++ s390)
++ VAR_CPU=s390
++ VAR_CPU_ARCH=s390
++@@ -373,6 +433,12 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS],
++
++ # ZERO_ARCHDEF is used to enable architecture-specific code
++ case "${OPENJDK_TARGET_CPU}" in
+++ alpha*) ZERO_ARCHDEF=ALPHA ;;
+++ ia64) ZERO_ARCHDEF=IA64 ;;
+++ m68k) ZERO_ARCHDEF=M68K ;;
+++ mips|mipsn32|mips64) ZERO_ARCHDEF=MIPS ;;
+++ mipsel|mipsn32el|mips64el) ZERO_ARCHDEF=MIPSEL ;;
+++ sh*) ZERO_ARCHDEF=ZERO_SH ;;
++ ppc) ZERO_ARCHDEF=PPC32 ;;
++ ppc64) ZERO_ARCHDEF=PPC64 ;;
++ s390*) ZERO_ARCHDEF=S390 ;;
++--- a/common/autoconf/flags.m4
+++++ b/common/autoconf/flags.m4
++@@ -806,6 +806,8 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAG
++ *)
++ ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
++ esac
+++ # use the default for the package builds
+++ ZERO_ARCHFLAG=""
++ FLAGS_COMPILER_CHECK_ARGUMENTS([$ZERO_ARCHFLAG], [], [ZERO_ARCHFLAG=""])
++ AC_SUBST(ZERO_ARCHFLAG)
++
--- /dev/null
--- /dev/null
++Description: ZeroVM fix under IA32. Actual code in
++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp#safe_cond_timedwait
++ call get_fpu_control_word and set_fpu_control_word under
++ any IA32 arch.
++ In os_linux_zero.cpp, this methods throw errors with ShouldNotCallThis.
++ Just replace it with just NO-OP.
++ TODO: Maybe just add ifndef ZERO in os_linux.cpp
++Author: Damien Raude-Morvan <drazzib@debian.org>
++Last-Update: 2011-08-02
++Forwarded: http://mail.openjdk.java.net/pipermail/zero-dev/2011-August/000398.html
++--- a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+++++ b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
++@@ -259,11 +259,12 @@ void os::Linux::init_thread_fpu_state(vo
++ }
++
++ int os::Linux::get_fpu_control_word() {
++- ShouldNotCallThis();
+++ // Nothing to do
+++ return 0;
++ }
++
++ void os::Linux::set_fpu_control_word(int fpu) {
++- ShouldNotCallThis();
+++ // Nothing to do
++ }
++
++ bool os::is_allocatable(size_t bytes) {
--- /dev/null
--- /dev/null
++# DP: Build zero with -O2 -finline-functions instead of -O3 (still needed?)
++--- openjdk/hotspot/make/linux/makefiles/gcc.make~ 2013-04-15 13:44:59.703968963 +0200
+++++ openjdk/hotspot/make/linux/makefiles/gcc.make 2013-04-15 16:22:04.124240511 +0200
++@@ -170,7 +170,11 @@
++ CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@))
++
++ # The flags to use for an Optimized g++ build
++-OPT_CFLAGS += -O3
+++ifeq ($(ZERO_BUILD), true)
+++ OPT_CFLAGS += -O2 -finline-functions
+++else
+++ OPT_CFLAGS += -O3
+++endif
++
++ # Hotspot uses very unstrict aliasing turn this optimization off
++ OPT_CFLAGS += -fno-strict-aliasing
--- /dev/null
--- /dev/null
++# DP: Add support for sh
++
++--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++++ b/hotspot/src/os/linux/vm/os_linux.cpp
++@@ -1970,7 +1970,8 @@ void * os::dll_load(const char *filename
++ {EM_MIPS_RS3_LE, EM_MIPS_RS3_LE, ELFCLASS32, ELFDATA2LSB, (char*)"MIPSel"},
++ {EM_MIPS, EM_MIPS, ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"},
++ {EM_PARISC, EM_PARISC, ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"},
++- {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"}
+++ {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"},
+++ {EM_SH, EM_SH, ELFCLASS32, ELFDATA2LSB, (char*)"Hitachi SH"}
++ };
++
++ #if (defined IA32)
++@@ -2001,9 +2002,11 @@ void * os::dll_load(const char *filename
++ static Elf32_Half running_arch_code=EM_MIPS;
++ #elif (defined M68K)
++ static Elf32_Half running_arch_code=EM_68K;
+++ #elif (defined ZERO_SH)
+++ static Elf32_Half running_arch_code=EM_SH;
++ #else
++ #error Method os::dll_load requires that one of following is defined:\
++- IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K
+++ IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH
++ #endif
++
++ // Identify compatability class for VM's architecture and library's architecture
--- /dev/null
--- /dev/null
++--- openjdk/hotspot/src/cpu/sparc/vm/bytecodes_sparc.hpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/cpu/sparc/vm/bytecodes_sparc.hpp 2014-01-15 10:55:36.991083672 +0000
++@@ -25,7 +25,7 @@
++ #ifndef CPU_SPARC_VM_BYTECODES_SPARC_HPP
++ #define CPU_SPARC_VM_BYTECODES_SPARC_HPP
++
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ #define NLOCALS_IN_REGS 6
++ #endif
++
++--- openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp.old 2014-01-15 09:57:03.613191054 +0000
+++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp 2014-01-15 10:55:36.995083702 +0000
++@@ -82,7 +82,7 @@
++ // Must never look like an address returned by reserve_memory,
++ // even in its subfields (as defined by the CPU immediate fields,
++ // if the CPU splits constants across multiple instructions).
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ // On SPARC, 0 != %hi(any real address), because there is no
++ // allocation in the first 1Kb of the virtual address space.
++ return (char *) 0;
++--- openjdk/hotspot/src/share/vm/opto/output.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/opto/output.cpp 2014-01-15 10:55:37.015083849 +0000
++@@ -682,7 +682,7 @@
++ array->append(new_loc_value( _regalloc, regnum, Location::lng ));
++ }
++ #else //_LP64
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ if (t->base() == Type::Long && OptoReg::is_reg(regnum)) {
++ // For SPARC we have to swap high and low words for
++ // long values stored in a single-register (g0-g7).
++--- openjdk/hotspot/src/share/vm/opto/chaitin.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/opto/chaitin.cpp 2014-01-15 10:55:37.023083908 +0000
++@@ -723,7 +723,7 @@
++ case Op_RegFlags:
++ case 0: // not an ideal register
++ lrg.set_num_regs(1);
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ lrg.set_reg_pressure(2);
++ #else
++ lrg.set_reg_pressure(1);
++@@ -1328,7 +1328,7 @@
++
++ // Check if a color is available and if so pick the color
++ OptoReg::Name reg = choose_color( *lrg, chunk );
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ debug_only(lrg->compute_set_mask_size());
++ assert(lrg->num_regs() < 2 || lrg->is_bound() || is_even(reg-1), "allocate all doubles aligned");
++ #endif
++--- openjdk/hotspot/src/share/vm/opto/chaitin.hpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/opto/chaitin.hpp 2014-01-15 10:55:37.015083849 +0000
++@@ -293,7 +293,7 @@
++ // TEMPORARILY REPLACED WITH COMMAND LINE FLAG
++
++ //// !!!!! Magic Constants need to move into ad file
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ //#define FLOAT_PRESSURE 30 /* SFLT_REG_mask.Size() - 1 */
++ //#define INT_PRESSURE 23 /* NOTEMP_I_REG_mask.Size() - 1 */
++ #define FLOAT_INCREMENT(regs) regs
++--- openjdk/hotspot/src/share/vm/runtime/safepoint.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/runtime/safepoint.cpp 2014-01-15 10:55:37.027083937 +0000
++@@ -765,7 +765,7 @@
++ newptr, is_oop?"oop":" ", (wasoop && !is_oop) ? "STALE" : ((wasoop==false&&is_oop==false&&oldptr !=newptr)?"STOMP":" "));
++ }
++
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ static void print_me(intptr_t *new_sp, intptr_t *old_sp, bool *was_oops) {
++ #ifdef _LP64
++ tty->print_cr("--------+------address-----+------before-----------+-------after----------+");
++--- openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp 2014-01-15 10:55:37.031083968 +0000
++@@ -815,7 +815,7 @@
++ #ifdef _LP64
++ jlong res = (jlong)low->get_int();
++ #else
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ // For SPARC we have to swap high and low words.
++ jlong res = jlong_from((jint)low->get_int(), (jint)value->get_int());
++ #else
++@@ -866,7 +866,7 @@
++ #ifdef _LP64
++ jlong res = (jlong)low->get_int();
++ #else
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ // For SPARC we have to swap high and low words.
++ jlong res = jlong_from((jint)low->get_int(), (jint)value->get_int());
++ #else
++--- openjdk/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp 2014-01-15 10:55:37.035083997 +0000
++@@ -62,7 +62,7 @@
++ }
++ #endif
++
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ if (FLAG_IS_DEFAULT(InlineSmallCode)) {
++ FLAG_SET_DEFAULT(InlineSmallCode, 2500);
++ }
++--- openjdk/hotspot/src/share/vm/runtime/stackValue.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/runtime/stackValue.cpp 2014-01-15 10:55:37.023083908 +0000
++@@ -34,7 +34,7 @@
++ // Stack or register value
++ Location loc = ((LocationValue *)sv)->location();
++
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ // %%%%% Callee-save floats will NOT be working on a Sparc until we
++ // handle the case of a 2 floats in a single double register.
++ assert( !(loc.is_register() && loc.type() == Location::float_in_dbl), "Sparc does not handle callee-save floats yet" );
++--- openjdk/hotspot/src/share/vm/runtime/arguments.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2014-01-15 10:55:37.043084056 +0000
++@@ -1993,7 +1993,7 @@
++
++ status = status && verify_object_alignment();
++
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ if (UseConcMarkSweepGC || UseG1GC) {
++ // Issue a stern warning if the user has explicitly set
++ // UseMemSetInBOT (it is known to cause issues), but allow
++--- openjdk/hotspot/src/share/vm/c1/c1_Runtime1.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/c1/c1_Runtime1.cpp 2014-01-15 10:55:37.063084203 +0000
++@@ -1074,7 +1074,7 @@
++ RelocIterator iter(nm, (address)instr_pc, (address)(instr_pc + 1));
++ relocInfo::change_reloc_info_for_address(&iter, (address) instr_pc,
++ relocInfo::none, relocInfo::oop_type);
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ // Sparc takes two relocations for an oop so update the second one.
++ address instr_pc2 = instr_pc + NativeMovConstReg::add_offset;
++ RelocIterator iter2(nm, instr_pc2, instr_pc2 + 1);
++--- openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp 2014-01-15 10:55:37.047084085 +0000
++@@ -577,7 +577,7 @@
++ monitor_address(op->in_opr()->as_constant_ptr()->as_jint(), op->result_opr());
++ break;
++
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ case lir_pack64:
++ pack64(op->in_opr(), op->result_opr());
++ break;
++@@ -852,7 +852,7 @@
++ if (!r->is_stack()) {
++ stringStream st;
++ st.print("bad oop %s at %d", r->as_Register()->name(), _masm->offset());
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ _masm->_verify_oop(r->as_Register(), strdup(st.as_string()), __FILE__, __LINE__);
++ #else
++ _masm->verify_oop(r->as_Register());
++--- openjdk/hotspot/src/share/vm/c1/c1_LinearScan.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/c1/c1_LinearScan.cpp 2014-01-15 10:55:37.079084322 +0000
++@@ -2128,7 +2128,7 @@
++ }
++ #endif
++
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ assert(assigned_reg >= pd_first_fpu_reg && assigned_reg <= pd_last_fpu_reg, "no fpu register");
++ assert(interval->assigned_regHi() >= pd_first_fpu_reg && interval->assigned_regHi() <= pd_last_fpu_reg, "no fpu register");
++ assert(assigned_reg % 2 == 0 && assigned_reg + 1 == interval->assigned_regHi(), "must be sequential and even");
++@@ -2726,7 +2726,7 @@
++
++ assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation (only fpu_regnrLo is used)");
++ #endif
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ assert(opr->fpu_regnrLo() == opr->fpu_regnrHi() + 1, "assumed in calculation (only fpu_regnrHi is used)");
++ #endif
++ #ifdef ARM
++--- openjdk/hotspot/src/share/vm/c1/c1_LIR.hpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/c1/c1_LIR.hpp 2014-01-15 10:55:37.059084174 +0000
++@@ -595,7 +595,7 @@
++ static LIR_Opr single_softfp(int reg) { return (LIR_Opr)((reg << LIR_OprDesc::reg1_shift) | LIR_OprDesc::float_type | LIR_OprDesc::cpu_register | LIR_OprDesc::single_size); }
++ static LIR_Opr double_softfp(int reg1, int reg2) { return (LIR_Opr)((reg1 << LIR_OprDesc::reg1_shift) | (reg2 << LIR_OprDesc::reg2_shift) | LIR_OprDesc::double_type | LIR_OprDesc::cpu_register | LIR_OprDesc::double_size); }
++ #endif
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ static LIR_Opr double_fpu(int reg1, int reg2) { return (LIR_Opr)(intptr_t)((reg1 << LIR_OprDesc::reg1_shift) |
++ (reg2 << LIR_OprDesc::reg2_shift) |
++ LIR_OprDesc::double_type |
++--- openjdk/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp 2014-01-15 10:55:37.055084145 +0000
++@@ -1891,7 +1891,7 @@
++ Value recv = has_receiver ? apop() : NULL;
++ int vtable_index = methodOopDesc::invalid_vtable_index;
++
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ // Currently only supported on Sparc.
++ // The UseInlineCaches only controls dispatch to invokevirtuals for
++ // loaded classes which we weren't able to statically bind.
++--- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp 2014-01-15 10:55:37.083084351 +0000
++@@ -3095,7 +3095,7 @@
++ tty->print_cr("stack_base: " INTPTR_FORMAT, (uintptr_t) this->_stack_base);
++ tty->print_cr("stack_limit: " INTPTR_FORMAT, (uintptr_t) this->_stack_limit);
++ tty->print_cr("monitor_base: " INTPTR_FORMAT, (uintptr_t) this->_monitor_base);
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ tty->print_cr("last_Java_pc: " INTPTR_FORMAT, (uintptr_t) this->_last_Java_pc);
++ tty->print_cr("frame_bottom: " INTPTR_FORMAT, (uintptr_t) this->_frame_bottom);
++ tty->print_cr("&native_fresult: " INTPTR_FORMAT, (uintptr_t) &this->_native_fresult);
++--- openjdk/hotspot/src/share/vm/utilities/macros.hpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/utilities/macros.hpp 2014-01-15 10:55:37.087084380 +0000
++@@ -207,7 +207,7 @@
++ #define NOT_AMD64(code) code
++ #endif
++
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ #define SPARC_ONLY(code) code
++ #define NOT_SPARC(code)
++ #else
++--- openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp 2014-01-15 10:55:37.087084380 +0000
++@@ -243,7 +243,7 @@
++
++ // checking for nanness
++ #ifdef SOLARIS
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ inline int g_isnan(float f) { return isnanf(f); }
++ #else
++ // isnanf() broken on Intel Solaris use isnand()
++--- openjdk/hotspot/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp 2014-01-15 10:55:37.087084380 +0000
++@@ -249,7 +249,7 @@
++
++ // checking for nanness
++ #ifdef SOLARIS
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ inline int g_isnan(float f) { return isnanf(f); }
++ #else
++ // isnanf() broken on Intel Solaris use isnand()
++--- openjdk/hotspot/src/share/vm/adlc/output_h.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/adlc/output_h.cpp 2014-01-15 10:55:37.095084439 +0000
++@@ -718,7 +718,7 @@
++ fprintf(fp_hpp, "class Pipeline_Use_Cycle_Mask {\n");
++
++ if (_pipeline->_maxcycleused <=
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ 64
++ #else
++ 32
++--- openjdk/hotspot/src/share/vm/adlc/formssel.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/adlc/formssel.cpp 2014-01-15 10:55:37.103084499 +0000
++@@ -1020,7 +1020,7 @@
++ const char *opType = NULL;
++ while (_matrule->base_operand(position, globals, result, name, opType)) {
++ if ( strcmp(opType,"ConP") == 0 ) {
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ reloc_entries += 2; // 1 for sethi + 1 for setlo
++ #else
++ ++reloc_entries;
++@@ -1058,7 +1058,7 @@
++ // Check for any component being an immediate float or double.
++ Form::DataType data_type = is_chain_of_constant(globals);
++ if( data_type==idealD || data_type==idealF ) {
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ // sparc required more relocation entries for floating constants
++ // (expires 9/98)
++ reloc_entries += 6;
++--- openjdk/hotspot/src/share/vm/adlc/output_c.cpp.old 2014-01-14 21:26:34.000000000 +0000
+++++ openjdk/hotspot/src/share/vm/adlc/output_c.cpp 2014-01-15 10:55:37.111084557 +0000
++@@ -779,7 +779,7 @@
++ /* Do Nothing */;
++
++ else if (_pipeline->_maxcycleused <=
++-#ifdef SPARC
+++#if defined(SPARC) && !defined(ZERO)
++ 64
++ #else
++ 32
--- /dev/null
--- /dev/null
++# DP: Add support for x32
++
++--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++++ b/hotspot/src/os/linux/vm/os_linux.cpp
++@@ -1975,7 +1975,7 @@ void * os::dll_load(const char *filename
++
++ #if (defined IA32)
++ static Elf32_Half running_arch_code=EM_386;
++- #elif (defined AMD64)
+++ #elif (defined AMD64) || (defined X32)
++ static Elf32_Half running_arch_code=EM_X86_64;
++ #elif (defined IA64)
++ static Elf32_Half running_arch_code=EM_IA_64;
++--- a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
+++++ b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
++@@ -41,7 +41,6 @@
++ #endif
++ #ifdef __linux__
++ #include <unistd.h>
++-#include <sys/sysctl.h>
++ #include <sys/utsname.h>
++ #include <netinet/ip.h>
++
++--- a/jdk/src/solaris/native/java/net/PlainSocketImpl.c
+++++ b/jdk/src/solaris/native/java/net/PlainSocketImpl.c
++@@ -43,7 +43,6 @@
++ #endif
++ #ifdef __linux__
++ #include <unistd.h>
++-#include <sys/sysctl.h>
++ #endif
++
++ #include "jvm.h"
++--- a/common/autoconf/platform.m4
+++++ b/common/autoconf/platform.m4
++@@ -31,10 +31,17 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
++ # First argument is the cpu name from the trip/quad
++ case "$1" in
++ x86_64)
++- VAR_CPU=x86_64
++- VAR_CPU_ARCH=x86
++- VAR_CPU_BITS=64
++- VAR_CPU_ENDIAN=little
+++ if test "`dpkg-architecture -qDEB_HOST_ARCH`" = x32 ; then
+++ VAR_CPU=x32
+++ VAR_CPU_ARCH=x86
+++ VAR_CPU_BITS=32
+++ VAR_CPU_ENDIAN=little
+++ else
+++ VAR_CPU=x86_64
+++ VAR_CPU_ARCH=x86
+++ VAR_CPU_BITS=64
+++ VAR_CPU_ENDIAN=little
+++ fi
++ ;;
++ i?86)
++ VAR_CPU=x86
++@@ -449,7 +456,13 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS],
++ ppc64) ZERO_ARCHDEF=PPC64 ;;
++ s390*) ZERO_ARCHDEF=S390 ;;
++ sparc*) ZERO_ARCHDEF=SPARC ;;
++- x86_64*) ZERO_ARCHDEF=AMD64 ;;
+++ x86_64*)
+++ if test "`dpkg-architecture -qDEB_HOST_ARCH`" = x32 ; then
+++ ZERO_ARCHDEF=X32
+++ else
+++ ZERO_ARCHDEF=AMD64
+++ fi
+++ ;;
++ x86) ZERO_ARCHDEF=IA32 ;;
++ *) ZERO_ARCHDEF=$(echo "${OPENJDK_TARGET_CPU_LEGACY_LIB}" | tr a-z A-Z)
++ esac
++--- a/jdk/make/gensrc/GensrcX11Wrappers.gmk
+++++ b/jdk/make/gensrc/GensrcX11Wrappers.gmk
++@@ -91,9 +91,11 @@ ifneq ($(COMPILE_TYPE), cross)
++ $(TOOL_WRAPPERGENERATOR) $(@D) $(GENSRC_SIZER_DIR)/xlibtypes.txt "sizer" $*
++
++ # use -m32/-m64 only if the compiler supports it
+++ ifneq ($(OPENJDK_TARGET_CPU),x32)
++ ifeq ($(COMPILER_SUPPORTS_TARGET_BITS_FLAG), true)
++ MEMORY_MODEL_FLAG="$(COMPILER_TARGET_BITS_FLAG)$*"
++ endif
+++ endif
++
++ # Compile the C code into an executable.
++ $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe: $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c
--- /dev/null
--- /dev/null
++#!/usr/bin/make -f
++# -*- makefile -*-
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++unexport LANG LC_ALL
++
++dh_version := $(shell dpkg-query -f '$${Version}\n' -W debhelper | sed -n 's/^\(.\).*/\1/p')
++
++# using brace expansion and substring replacements (${var:0:2}).
++SHELL = /bin/bash
++
++# use gnu time in verbose mode if available, otherwise default to the shell builtin
++ifneq (,$(wildcard /usr/bin/time))
++ TIME = /usr/bin/time -v
++else
++ TIME = time
++endif
++
++vafilt = $(subst $(2)=,,$(filter $(2)=%,$(1)))
++
++DPKG_VARS := $(shell dpkg-architecture)
++DEB_HOST_GNU_TYPE ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_GNU_TYPE)
++DEB_BUILD_GNU_TYPE ?= $(call vafilt,$(DPKG_VARS),DEB_BUILD_GNU_TYPE)
++DEB_HOST_ARCH ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_ARCH)
++DEB_BUILD_ARCH ?= $(call vafilt,$(DPKG_VARS),DEB_BUILD_ARCH)
++DEB_HOST_ARCH_CPU ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_ARCH_CPU)
++DEB_HOST_MULTIARCH ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_MULTIARCH)
++
++PATH := $(CURDIR)/bin:$(PATH)
++export PATH
++
++CHANGELOG_VARS := $(shell dpkg-parsechangelog | sed -n 's/ /_/g;/^[^_]/s/^\([^:]*\):_\(.*\)/\1=\2/p')
++PKGSOURCE := $(call vafilt,$(CHANGELOG_VARS),Source)
++PKGVERSION := $(call vafilt,$(CHANGELOG_VARS),Version)
++
++distribution := $(shell lsb_release --id --short)
++distrel := $(shell lsb_release --codename --short)
++derivative := $(shell if dpkg-vendor --derives-from Ubuntu; then echo Ubuntu; \
++ elif dpkg-vendor --derives-from Debian; then echo Debian; \
++ else echo Unknown; fi)
++ifeq ($(distrel),n/a)
++ distrel := sid
++endif
++
++multiarch_dir = /$(DEB_HOST_MULTIARCH)
++
++hotspot_aarch32_archs = armhf
++hotspot_archs = amd64 i386 arm64 ppc64 ppc64el sparc64 \
++ $(hotspot_aarch32_archs) kfreebsd-amd64 kfreebsd-i386
++jtreg_archs = $(hotspot_archs) alpha arm64 armel armhf \
++ ia64 mips mipsel mips64 mips64el powerpc \
++ powerpcspe ppc64 ppc64el s390x sh4 x32
++# FIXME: use bootcycle builds for zero archs?
++bootcycle_build = $(if $(filter $(DEB_HOST_ARCH), $(hotspot_archs)),yes)
++ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
++ bootcycle_build =
++endif
++
++shark_archs = amd64 i386 kfreebsd-amd64 kfreebsd-i386
++# Shark build but just crash
++shark_archs =
++
++ifneq (,$(filter $(distrel),lucid precise quantal raring saucy trusty utopic vivid wily lenny etch squeeze wheezy jessie))
++ is_default = no
++else
++ is_default = yes
++endif
++
++srcdir = src
++builddir = build
++zbuilddir = build-zero
++
++VENDOR = openjdk
++Vendor = OpenJDK
++TOP = usr/lib/jvm
++origin = openjdk
++basename = openjdk-$(shortver)
++ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs)))
++ priority = $(if $(filter yes, $(is_default)),1081,1069)
++ vm_name = Hotspot JIT
++else ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs)))
++ priority = $(if $(filter yes, $(is_default)),1075,1065)
++ vm_name = Hotspot Shark
++else
++ priority = $(if $(filter yes, $(is_default)),1074,1063)
++ vm_name = Hotspot Zero
++endif
++jvmver = 1.8.0
++shortver = 8
++updatever := $(shell echo $(PKGVERSION) | sed -n 's/^$(shortver)u\([0-9]\+\).*/\1/p')
++buildver := $(shell echo $(PKGVERSION) | sed -n 's/^$(shortver)[^-]*-\(b[0-9]\+\).*/\1/p')
++
++ifneq (,$(DEB_HOST_MULTIARCH))
++ jdirname = java-$(shortver)-$(origin)-$(DEB_HOST_ARCH)
++ jdiralias = java-$(jvmver)-$(origin)-$(DEB_HOST_ARCH)
++ basedir = $(TOP)/$(jdirname)
++ commonbasedir = $(TOP)/java-$(shortver)-$(origin)-common
++ commonbasedir = $(basedir)
++ etcdir = etc/java-$(shortver)-$(origin)
++else
++ jdirname = java-$(shortver)-$(origin)
++ jdiralias = java-$(jvmver)-$(origin)
++ basedir = $(TOP)/$(jdirname)
++ commonbasedir = $(TOP)/java-$(shortver)-$(origin)
++ etcdir = etc/$(jdirname)
++endif
++security = $(etcdir)/security
++ifneq ($(bootcycle_build),yes)
++ jreimg = images/j2re-image
++ sdkimg = images/j2sdk-image
++ build_target = images
++else
++ jreimg = bootcycle-build/images/j2re-image
++ sdkimg = bootcycle-build/images/j2sdk-image
++ build_target = bootcycle-images
++endif
++
++# Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008)
++COMMA=,
++SPACE = $(EMPTY) $(EMPTY)
++ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
++ NJOBS = $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
++endif
++
++with_check = $(if $(findstring nocheck, $(DEB_BUILD_OPTIONS)),,yes)
++ifneq (,$(filter $(DEB_HOST_ARCH), armel))
++ with_check = disabled running check on $(DEB_HOST_ARCH)
++endif
++
++with_docs = $(if $(findstring nodocs, $(DEB_BUILD_OPTIONS)),,yes)
++ifneq (,$(findstring shark, $(PKGSOURCE)))
++ with_docs = disabled for shark
++endif
++
++arch_map := alpha=alpha arm=arm armel=arm armhf=arm arm64=aarch64 amd64=amd64 hppa=parisc i386=i586 m68k=m68k mips=mips mipsel=mipsel mips64=mips64 mips64el=mips64el powerpc=ppc powerpcspe=ppc ppc64=ppc64 ppc64el=ppc64le sparc=sparc sparc64=sparcv9 sh4=sh s390x=s390x ia64=ia64 x32=x32
++archdir_map := alpha=alpha arm=arm armel=arm armhf=arm arm64=aarch64 amd64=amd64 hppa=parisc i386=i386 m68k=m68k mips=mips mipsel=mipsel mips64=mips64 mips64el=mips64el powerpc=ppc powerpcspe=ppc ppc64=ppc64 ppc64el=ppc64le sparc=sparc sparc64=sparcv9 sh4=sh s390x=s390x ia64=ia64 x32=x32
++
++jvmarch := $(strip $(patsubst $(DEB_HOST_ARCH_CPU)=%, %, \
++ $(filter $(DEB_HOST_ARCH_CPU)=%, $(arch_map))))
++archdir := $(strip $(patsubst $(DEB_HOST_ARCH_CPU)=%, %, \
++ $(filter $(DEB_HOST_ARCH_CPU)=%, $(archdir_map))))
++ifeq ($(DEB_HOST_ARCH),x32)
++ jvmarch := x32
++ archdir := x32
++endif
++
++default_vm = $(if $(filter $(DEB_HOST_ARCH), $(hotspot_archs)),hotspot,zero)
++hotspot_version = $(if $(filter $(DEB_HOST_ARCH), $(hotspot_archs)),default,zero)
++hotspot_version = default
++# FIXME: 8u91 breaks zero, the jdk8-aarch64 hotspot has these issues fixed,
++# without any updates to the jdk8u project.
++hotspot_aarch64_archs = arm64 # armhf powerpc s390x
++ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_aarch64_archs)))
++ hotspot_version = aarch64
++endif
++ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_aarch32_archs)))
++ hotspot_version = aarch32
++endif
++
++any_archs = alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
++
++ifneq (,$(filter $(distrel),xenial))
++ transitional_jamvm_pkg = yes
++endif
++
++altshark_archs = powerpc ppc64 ppc64el
++# Shark build but just crash
++altshark_archs =
++
++# Don't build zero alternate vm on Trusty
++ifeq (,$(filter $(distrel),trusty))
++ altzero_archs = $(filter-out sparc, $(hotspot_archs)) $(altshark_archs)
++endif
++
++ifeq (,$(filter noaltzero, $(DEB_BUILD_OPTIONS))$(filter noaltshark, $(DEB_BUILD_OPTIONS)))
++ ifneq (,$(filter $(DEB_HOST_ARCH), $(altzero_archs)))
++ ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs) $(altshark_archs)))
++ alternate_vms += shark
++ zero_dir = shark
++ else
++ alternate_vms += zero
++ zero_dir = zero
++ endif
++ endif
++endif
++
++BOOTJDK_HOME := $(strip $(subst /bin/javac,, $(firstword $(wildcard \
++ /usr/lib/jvm/java-8-openjdk-$(DEB_BUILD_ARCH)/bin/javac \
++ /usr/lib/jvm/java-7-openjdk-$(DEB_BUILD_ARCH)/bin/javac \
++ /usr/lib/jvm/java-7-openjdk/bin/javac \
++ ))))
++
++ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
++ BUILDJDK_HOME = $(CURDIR)/$(builddir)/$(sdkimg)
++else
++ BUILDJDK_HOME = $(BOOTJDK_HOME)
++endif
++
++OPENJDK_VERSION = jdk$(shortver)u$(updatever)-$(buildver)
++
++# for Hotspot: hotspot/make/linux/makefiles/vm.make
++# Don't overwrite Hotspot opt level :
++# -O3 is already default option for hotspot
++
++# FIXME: ftbfs with -Werror=format-security
++dpkg_buildflags_hs = \
++ DEB_CFLAGS_MAINT_STRIP="-O2 -O3 -Werror=format-security" \
++ DEB_CXXFLAGS_MAINT_STRIP="-O2 -O3 -Werror=format-security"
++# jdk/make/CompileDemos.gmk (SetupJVMTIDemo) doesn't like commas in flags
++dpkg_buildflags_hs += \
++ DEB_LDFLAGS_MAINT_STRIP="-Wl,-z,relro -Wl,-Bsymbolic-functions" \
++ DEB_LDFLAGS_MAINT_APPEND="-Xlinker -z -Xlinker relro -Xlinker -Bsymbolic-functions"
++dpkg_buildflags_hs += dpkg-buildflags
++export EXTRA_CPPFLAGS_HS := $(shell $(dpkg_buildflags_hs) --get CPPFLAGS)
++export EXTRA_CFLAGS_HS := $(shell $(dpkg_buildflags_hs) --get CFLAGS) $(shell $(dpkg_buildflags_hs) --get CPPFLAGS)
++export EXTRA_CXXFLAGS_HS := $(shell $(dpkg_buildflags_hs) --get CXXFLAGS)
++export EXTRA_LDFLAGS_HS := $(shell $(dpkg_buildflags_hs) --get LDFLAGS)
++
++# for JDK: jdk/make/common/Defs.gmk
++# Don't overwrite JDK opt level :
++# 1) with forced -03, it cause wrong Math.* computations, see #679292 and #678228
++# 2) JDK already use it's own OPTIMIZATION_LEVEL variable for each module
++dpkg_buildflags_jdk = DEB_CFLAGS_MAINT_STRIP="-O2 -O3" DEB_CXXFLAGS_MAINT_STRIP="-O2 -O3"
++dpkg_buildflags_jdk += dpkg-buildflags
++export EXTRA_CPPFLAGS_JDK := $(shell $(dpkg_buildflags_jdk) --get CPPFLAGS)
++export EXTRA_CFLAGS_JDK := $(shell $(dpkg_buildflags_jdk) --get CFLAGS) $(shell $(dpkg_buildflags_jdk) --get CPPFLAGS)
++export EXTRA_CXXFLAGS_JDK := $(shell $(dpkg_buildflags_jdk) --get CXXFLAGS)
++export EXTRA_LDFLAGS_JDK := $(shell $(dpkg_buildflags_jdk) --get LDFLAGS)
++
++#for IcedTea
++ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
++dpkg_buildflags_it += DEB_CFLAGS_MAINT_STRIP="-O2" DEB_CXXFLAGS_MAINT_STRIP="-O2"
++dpkg_buildflags_it += DEB_CFLAGS_MAINT_APPEND="-O3" DEB_CXXFLAGS_MAINT_APPEND="-O3"
++endif
++dpkg_buildflags_it += dpkg-buildflags
++export EXTRA_CPPFLAGS_IT := $(shell $(dpkg_buildflags_it) --get CPPFLAGS)
++export EXTRA_CFLAGS_IT := $(shell $(dpkg_buildflags_it) --get CFLAGS)
++export EXTRA_CXXFLAGS_IT := $(shell $(dpkg_buildflags_it) --get CXXFLAGS)
++export EXTRA_LDFLAGS_IT := $(shell $(dpkg_buildflags_it) --get LDFLAGS)
++
++# This section should be in sync with "bd_gcc" definition
++ifneq (,$(filter $(distrel),squeeze lucid))
++ export CC = gcc-4.4
++ export CXX = g++-4.4
++else ifneq (,$(filter $(distrel),wheezy quantal raring))
++ export CC = gcc-4.7
++ export CXX = g++-4.7
++else ifneq (,$(filter $(distrel),precise))
++ export CC = gcc-4.6
++ export CXX = g++-4.6
++else ifneq (,$(filter $(distrel),saucy trusty))
++ export CC = gcc-4.8
++ export CXX = g++-4.8
++else ifneq (,$(filter $(distrel),utopic vivid jessie))
++ export CC = gcc-4.9
++ export CXX = g++-4.9
++else ifneq (,$(filter $(distrel),wily xenial))
++ export CC = $(DEB_HOST_GNU_TYPE)-gcc-5
++ export CXX = $(DEB_HOST_GNU_TYPE)-g++-5
++else ifneq (,$(filter $(distrel),zesty stretch))
++ export CC = $(DEB_HOST_GNU_TYPE)-gcc-6
++ export CXX = $(DEB_HOST_GNU_TYPE)-g++-6
++else ifneq (,$(filter $(distrel),artful bionic))
++ export CC = $(DEB_HOST_GNU_TYPE)-gcc-7
++ export CXX = $(DEB_HOST_GNU_TYPE)-g++-7
++else
++ export CC = $(DEB_HOST_GNU_TYPE)-gcc-8
++ export CXX = $(DEB_HOST_GNU_TYPE)-g++-8
++endif
++
++ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf))
++ifeq ($(derivative),Ubuntu)
++ OPT_CFLAGS/cppInterpreter_arm.o = -march=armv6 -mtune=cortex-a8 -O2 -falign-functions=64 -falign-loops=8 -g0
++else
++ OPT_CFLAGS/cppInterpreter_arm.o = -O2 -falign-functions=32 -falign-loops=8 -g0
++endif
++export OPT_CFLAGS/cppInterpreter_arm.o
++endif
++
++with_pulse = yes
++ifneq (,$(filter $(DEB_HOST_ARCH), alpha))
++ with_pulse =
++endif
++
++ifneq (,$(filter $(distrel),squeeze lucid))
++ with_bridge = bridge
++ with_jni_bridge = yes
++else ifneq (,$(filter $(distrel),xenial yakkety))
++ # TCK tests still failing
++ with_bridge =
++else
++ with_bridge = atk
++endif
++
++with_nss = yes
++
++on_buildd := $(shell [ -f /CurrentlyBuilding -o "$$LOGNAME" = buildd ] && echo yes)
++
++ifeq (,$(filter $(distrel),squeeze wheezy precise trusty))
++ ifeq (,$(filter $(DEB_HOST_ARCH),none))
++ with_systemtap = yes
++ ALT_SDT_H := $(firstword $(wildcard /usr/include/*/sys/sdt.h /usr/include/sys/sdt.h))
++ export ALT_SDT_H
++ endif
++endif
++
++ifneq (,$(filter $(DEB_HOST_ARCH), sparc64))
++ USE_PRECOMPILED_HEADER = 0
++ export USE_PRECOMPILED_HEADER
++endif
++
++# $(if $(filter $(DEB_HOST_ARCH),$(hotspot_aarch64_archs)),8132051-zero.diff) \
++# FIXME: 8132051-zero.diff doesn't apply for the default hotspot tarball,
++# resulting in broken zero builds
++COMMON_PATCHES = \
++ autoconf-select.diff \
++ hotspot-warn-no-errformat.diff \
++ aarch64.diff \
++ hotspot-set-compiler.diff \
++ ppc64el.diff \
++ system-libjpeg.diff \
++ system-libpng.diff \
++ system-lcms.diff \
++ system-pcsclite.diff \
++ link-with-as-needed.diff \
++ ld-symbolic-functions-default.diff \
++ hotspot-mips-align.diff \
++ hotspot-no-march-i586.diff \
++ icc_loading_with_symlink.diff \
++ icedtea-override-redirect-compiz.patch \
++ libpcsclite-dlopen.diff \
++ nonreparenting-wm.diff \
++ zero-fpu-control-is-noop.diff \
++ jexec.diff \
++ default-jvm-cfg-default.diff \
++ disable-doclint-by-default.diff \
++ pass-extra-flags.diff \
++ hotspot-disable-werror.diff \
++ workaround_expand_exec_shield_cs_limit.diff \
++ zero-architectures.diff \
++ adlc-parser.patch \
++ compare-pointer-with-literal.patch \
++ multiple-pkcs11-library-init.patch \
++ applet-hole.patch \
++ libjpeg-fix.diff \
++ sparc-fixes.diff \
++ jdk-target-arch-define.diff \
++ m68k-support.diff \
++ javadoc-sort-enum-and-annotation-types.diff \
++ s390x-thread-stack-size.diff \
++ jdk-getAccessibleValue.diff \
++ compiler-flags.diff \
++ jdk-ppc64el-S8170153.patch \
++ jdk-841269-filechooser.patch \
++ jdk-i18n-pt_BR.diff \
++ jdk-java-nio-bits-unligned-aarch64.diff \
++ hotspot-ia64.diff \
++
++# FIXME:
++# dont-strip-images.diff \
++# 8141491.diff \
++
++ifeq ($(derivative),Debian)
++ COMMON_PATCHES += \
++ hotspot-disable-exec-shield-workaround.patch
++endif
++
++# jdk-derived-font-size.diff \
++# FIXME: update patches
++ #accessible-toolkit.patch # update for 8
++
++ifeq ($(with_bridge),atk)
++ COMMON_PATCHES += atk-wrapper-security.patch
++else ifneq (,$(with_bridge))
++ COMMON_PATCHES += java-access-bridge-security.patch
++endif
++
++COMMON_PATCHES += \
++ dnd-files.patch \
++ zero-x32.diff \
++
++# FIXME fontconfig-wqy-microhei.patch \
++# FIXME zero-sparc.diff \
++# FIXME no-pch-build.diff \
++
++ifeq (,$(filter $(DEB_HOST_ARCH),$(hotspot_aarch64_archs) $(hotspot_aarch32_archs)))
++ COMMON_PATCHES += \
++ zero-sh.diff
++# FIXME zero-opt.diff
++# FIXME ppc64le-8036767.diff
++endif
++
++# FIXME: needs an update
++#ifeq (,$(filter $(distrel),squeeze lucid))
++# COMMON_PATCHES += \
++# fontconfig-korean-nanum.diff \
++# fontconfig-japanese.diff
++#endif
++
++ifeq ($(with_pulse),yes)
++ COMMON_PATCHES += \
++ jdk-pulseaudio.diff
++endif
++
++ifneq (,$(filter $(DEB_HOST_ARCH), alpha))
++ # FIXME: Needed for non-bootstrap builds?
++ COMMON_PATCHES += \
++ alpha-float-const.diff
++endif
++
++# set LIBARCH/aarch32 to arm
++ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_aarch32_archs)))
++ COMMON_PATCHES += \
++ aarch32.diff
++else
++ COMMON_PATCHES += \
++ enable-sa-on-aarch64.diff
++endif
++
++ifneq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 kfreebsd-i386))
++ COMMON_PATCHES += \
++ kfreebsd-support-jdk.diff \
++ kfreebsd-support-hotspot.diff
++endif
++
++DEFAULT_PATCHES = \
++ $(COMMON_PATCHES) \
++ hotspot-libpath-$(hotspot_version).diff
++
++# for additional zero builds
++ZERO_PATCHES = \
++ $(COMMON_PATCHES) \
++ hotspot-libpath-default.diff
++
++CONFIGURE_ARGS =
++
++# GNU/kFreeBSD don't support epoll syscall so don't try to check of it.
++# FIXME need to check the flag, configure complains about it
++#ifneq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 kfreebsd-i386))
++# CONFIGURE_ARGS += --disable-compile-against-syscalls
++#endif
++
++# there are problems --with-alt-jar=/usr/bin/fastjar,
++# see http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=217
++# only use it for zero ports except powerpc (which we assume as
++# fast enough to build.
++ifeq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs) ia64 powerpc powerpcspe ppc64 ppc64el))
++ CONFIGURE_ARGS += --with-alt-jar=/usr/bin/fastjar
++endif
++
++ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf))
++ CONFIGURE_ARGS += \
++ --disable-arm32-jit
++endif
++
++ifeq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs)))
++ CONFIGURE_ARGS += --enable-zero
++ ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs)))
++ CONFIGURE_ARGS += --enable-shark
++ endif
++endif
++
++EXTRA_BUILD_ENV += MAKE_VERBOSE=y QUIETLY= LOG=debug
++
++# timestamp skew on kFreeBSD
++EXTRA_BUILD_ENV += IGNORE_OLD_CONFIG=true
++
++EXTRA_BUILD_ENV += LIBFFI_LIBS=-lffi_pic
++
++# http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2014-March/026450.html
++# plus needs explicit --disable-debug-symbols
++EXTRA_BUILD_ENV += \
++ DEBUG_BINARIES=true \
++ FULL_DEBUG_SYMBOLS=0 \
++ ZIP_DEBUGINFO_FILES=0 \
++ STRIP_POLICY=none \
++ POST_STRIP_CMD=true \
++ ALT_OBJCOPY=/does_not_exist
++
++ifeq ($(with_pulse),yes)
++ CONFIGURE_ARGS += --enable-pulse-java
++endif
++
++CONFIGURE_ARGS += --enable-system-kerberos
++
++ifeq ($(with_nss),yes)
++ CONFIGURE_ARGS += --enable-nss
++else ifeq ($(with_nss),no)
++ CONFIGURE_ARGS += --disable-nss
++endif
++
++ifeq ($(with_systemtap),yes)
++ CONFIGURE_ARGS += --enable-systemtap --with-abs-install-dir=/$(basedir)
++endif
++
++COMMON_CONFIGURE_ARGS =
++DEFAULT_CONFIGURE_ARGS =
++ZERO_CONFIGURE_ARGS =
++
++# FIXME: --with-jvm-variants=server,zero not supported upstream
++ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_archs)))
++ ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_aarch32_archs)))
++ DEFAULT_CONFIGURE_ARGS += --with-jvm-variants=client
++ else
++ DEFAULT_CONFIGURE_ARGS += --with-jvm-variants=server
++ endif
++else
++ DEFAULT_CONFIGURE_ARGS += --with-jvm-variants=zero
++endif
++ZERO_CONFIGURE_ARGS += --with-jvm-variants=zero
++
++DEFAULT_CONFIGURE_ARGS += --with-boot-jdk=$(BOOTJDK_HOME)
++ZERO_CONFIGURE_ARGS += --with-boot-jdk=$(BUILDJDK_HOME)
++
++COMMON_CONFIGURE_ARGS += --disable-ccache
++
++# FIXME: zero not ready for --disable-precompiled-headers
++#COMMON_CONFIGURE_ARGS += --disable-precompiled-headers
++ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_archs)))
++ ifneq (,$(filter $(distrel),trusty))
++ DEFAULT_CONFIGURE_ARGS += --disable-precompiled-headers
++ endif
++endif
++
++ifeq ($(with_check),yes)
++ COMMON_CONFIGURE_ARGS += --with-jtreg
++endif
++
++COMMON_CONFIGURE_ARGS += \
++ --with-milestone='fcs' \
++ --with-user-release-suffix='$(PKGVERSION)' \
++ --with-update-version=$(updatever) \
++ --with-build-number=$(buildver)
++
++# --with-debug-level=fastdebug \
++
++COMMON_CONFIGURE_ARGS += \
++ --with-debug-level=release \
++ --disable-debug-symbols \
++ --disable-zip-debug-info \
++ --enable-unlimited-crypto \
++ --with-zlib=system \
++ --with-giflib=system \
++ --with-libpng=system \
++ --with-libjpeg=system \
++ --with-lcms=system \
++ --with-libpcsclite=system \
++ --with-stdc++lib=dynamic
++
++ifneq (,$(NJOBS))
++ COMMON_CONFIGURE_ARGS += --with-num-cores=$(NJOBS)
++endif
++
++# FIXME: upstream says the extra flags are not designed for general purpose ...
++# http://mail.openjdk.java.net/pipermail/jdk8u-dev/2014-July/001389.html
++
++# FIXME: demos fail to build with these ...
++# FIXME: zero ftbfs without -fpermissive
++#src/cpu/zero/vm/cppInterpreter_zero.cpp:732:30: error: invalid conversion from 'intptr_t {aka long int}' to 'const void*' [-fpermissive]
++# object = (oop) locals[0];
++# ^
++
++#COMMON_CONFIGURE_ARGS += \
++ --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \
++ --with-extra-cxxflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CXXFLAGS_HS)' \
++ --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)'
++
++ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs)))
++ DEFAULT_CONFIGURE_ARGS += \
++ --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \
++ --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)'
++else
++ DEFAULT_CONFIGURE_ARGS += \
++ --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \
++ --with-extra-cxxflags='-fpermissive' \
++ --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)'
++endif
++
++ZERO_CONFIGURE_ARGS += \
++ --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \
++ --with-extra-cxxflags='-fpermissive' \
++ --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)'
++
++ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
++ COMMON_CONFIGURE_ARGS += \
++ --build=$(DEB_BUILD_GNU_TYPE) \
++ --host=$(DEB_HOST_GNU_TYPE) \
++ --target=$(DEB_HOST_GNU_TYPE) \
++ BUILD_CC=$(subst $(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE),$(CC)) \
++ BUILD_LD=$(subst $(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE),$(CC)) \
++ BUILD_CXX=$(subst $(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE),$(CXX)) \
++
++endif
++
++# (most) jre and jdk tools handled by the alternatives system.
++# dups in heimdal-clients, krb5-user: kinit, klist, ktab, no alternatives
++# use javaws from icedtea-netx
++all_jre_tools = $(filter-out javaws, $(notdir $(wildcard $(builddir)/$(jreimg)/bin/*)))
++jre_tools = $(filter policytool, $(all_jre_tools))
++jre_hl_tools := $(filter-out $(jre_tools), $(all_jre_tools))
++
++corba_tools = orbd servertool tnameserv
++jre_hl_tools_alt= $(filter-out $(corba_tools), $(jre_hl_tools)) $(corba_tools)
++jre_tools_alt = $(filter-out kinit klist ktab, $(jre_tools))
++
++all_jdk_tools = $(filter-out javaws, $(notdir $(wildcard build/$(sdkimg)/bin/*)))
++jdk_tools = appletviewer jconsole
++jdk_tools_alt = $(jdk_tools)
++jdk_hl_tools = $(filter-out $(all_jre_tools) $(jdk_tools), $(all_jdk_tools))
++jdk_hl_tools_alt= $(filter-out apt java-rmi.cgi, $(jdk_hl_tools))
++
++
++# build dependencies
++ifneq (,$(filter $(distrel),lucid precise))
++ bd_autotools = autoconf2.69, automake, autotools-dev,
++ export AUTOCONF=autoconf2.69
++else
++ bd_autotools = autoconf (>= 2.69), automake, autotools-dev,
++endif
++bd_bootstrap += \
++ openjdk-8-jdk | openjdk-7-jdk,
++ifeq (,$(filter $(distrel),squeeze wheezy jessie precise trusty))
++bd_cross += \
++ openjdk-8-jdk-headless <cross>, dpkg-dev (>= 1.17.14),
++endif
++
++# This section should be in sync with "CC/CXX" definition
++ifneq (,$(filter $(distrel),squeeze lucid))
++ bd_gcc = g++-4.4 (>= 4.4.1),
++else ifneq (,$(filter $(distrel), precise))
++ bd_gcc = g++-4.6,
++else ifneq (,$(filter $(distrel), wheezy))
++ bd_gcc = g++-4.7, g++-4.4 [mips mipsel],
++else ifneq (,$(filter $(distrel), quantal raring))
++ bd_gcc = g++-4.7,
++else ifneq (,$(filter $(distrel), saucy trusty))
++ bd_gcc = g++-4.8,
++else ifneq (,$(filter $(distrel),utopic vivid jessie))
++ bd_gcc = g++-4.9,
++else ifneq (,$(filter $(distrel),wily xenial))
++ bd_gcc = g++-5,
++else ifneq (,$(filter $(distrel),stretch zesty))
++ bd_gcc = g++-6,
++else ifneq (,$(filter $(distrel),artful bionic))
++ bd_gcc = g++-7,
++else
++ bd_gcc = g++-8,
++endif
++bd_syslibs = zlib1g-dev, libattr1-dev,
++ifneq (,$(filter $(distrel),squeeze lucid))
++ bd_syslibs += libpng12-dev, libjpeg62-dev,
++else ifneq (,$(filter $(distrel),wheezy precise quantal raring saucy))
++ bd_syslibs += libpng-dev, libjpeg8-dev,
++else
++ bd_syslibs += libpng-dev, libjpeg-dev,
++endif
++bd_syslibs += \
++ libgif-dev,
++bd_openjdk = \
++ libxtst-dev, libxi-dev, libxt-dev, libxaw7-dev, libxrender-dev, libcups2-dev, \
++ libasound2-dev, liblcms2-dev, libfreetype6-dev (>= 2.2.1), \
++ libxinerama-dev, libkrb5-dev, xsltproc, libpcsclite-dev,
++ifneq (,$(filter $(distrel),wheezy xenial artful))
++ bd_openjdk += libgtk2.0-dev,
++else
++ bd_openjdk += libgtk-3-dev,
++endif
++
++pkg_ffidev = libffi-dev
++
++bd_zero = \
++ $(pkg_ffidev) [$(foreach a,$(hotspot_archs),!$(a))],
++bd_zero = \
++ $(pkg_ffidev),
++
++ifneq (,$(shark_archs))
++ bd_zero = $(pkg_ffidev),
++ ifneq (,$(filter $(distrel),lucid))
++ bd_shark = llvm-dev (>= 2.7) [$(foreach a,$(shark_archs) $(altshark_archs),$(a))],
++ bd_shark += oprofile [$(foreach a,$(shark_archs) $(altshark_archs),$(a))],
++ else
++ ifneq (,$(filter $(distrel),squeeze))
++ llvm_suffix = -2.7
++ else ifneq (,$(filter $(distrel),precise))
++ llvm_suffix = -2.9
++ else
++ llvm_suffix = -3.0
++ endif
++ bd_shark = llvm$(llvm_suffix)-dev [$(foreach a,$(shark_archs) $(altshark_archs),$(a))],
++ ifneq (,$(filter $(DEB_HOST_ARCH),$(shark_archs) $(altshark_archs)))
++ CONFIGURE_ARGS += --with-llvm-config=llvm-config$(llvm_suffix)
++ endif
++ endif
++endif
++
++ifneq (,$(filter $(distrel),lucid))
++ bd_ant = ant1.8, ant1.8-optional,
++else
++ bd_ant = ant, ant-optional,
++endif
++
++bd_fastjar = fastjar (>= 2:0.96-0ubuntu2),
++ifeq ($(with_pulse),yes)
++ bd_pulsejava = libpulse-dev (>= 0.9.12) [!alpha],
++endif
++ifeq ($(with_nss),yes)
++ ifneq (,$(filter $(distrel),squeeze lucid precise quantal))
++ bd_nss = libnss3-dev (>= 3.12.3),
++ else ifneq (,$(filter $(distrel),wheezy raring saucy trusty))
++ bd_nss = libnss3-dev (>= 2:3.12.3),
++ else
++ bd_nss = libnss3-dev (>= 2:3.17.1),
++ endif
++endif
++ifeq (,$(filter $(distrel),squeeze wheezy precise trusty))
++ bd_systemtap = systemtap-sdt-dev [!sh4],
++endif
++
++dlopen_hl_depends = \
++ libcups2, liblcms2-2,
++ifneq (,$(filter $(distrel),squeeze lucid))
++ dlopen_hl_depends += libjpeg62,
++else ifneq (,$(filter $(distrel), jessie stretch sid))
++ dlopen_hl_depends += libjpeg62-turbo,
++else
++ dlopen_hl_depends += libjpeg8,
++endif
++# FIXME: #793210, directly link with libfontconfig.
++dlopen_hl_depends += libfontconfig1,
++ifneq ($(with_nss),no)
++ ifneq (,$(filter $(distrel),squeeze lucid precise))
++ dlopen_hl_depends += , libnss3-1d (>= 3.12.3)
++ else ifneq (,$(filter $(distrel),wheezy quantal raring saucy trusty))
++ dlopen_hl_depends += , libnss3 (>= 2:3.12.3)
++ else
++ dlopen_hl_depends += , libnss3 (>= 2:3.17.1)
++ endif
++endif
++dlopen_hl_recommends =
++dlopen_jre_depends = \
++ libglib2.0-0 (>= 2.24), libxrandr2, libxinerama1, libgl1-mesa-glx | libgl1,
++ifneq (,$(filter $(distrel),wheezy xenial artful))
++ dlopen_jre_depends += libgtk2.0-0 (>= 2.14),
++else
++ dlopen_jre_depends += libgtk-3-0,
++endif
++
++dlopen_jre_recommends =
++
++plugin_name = IcedTeaPlugin.so
++browser_plugin_dirs = mozilla
++
++# .desktop files need to be multiarch installable
++java_launcher = /$(basedir)/bin/java
++java_launcher = /usr/bin/java
++ifeq ($(derivative),Ubuntu)
++ java_launcher = cautious-launcher %f /$(basedir)/bin/java
++ java_launcher = cautious-launcher %f /usr/bin/java
++endif
++
++ifneq (,$(filter $(distrel),squeeze wheezy lucid precise quantal raring))
++ core_fonts = ttf-dejavu-extra
++else
++ core_fonts = fonts-dejavu-extra
++endif
++ifneq (,$(filter $(distrel),squeeze lucid))
++ cjk_fonts = ttf-baekmuk | ttf-unfonts | ttf-unfonts-core,
++ cjk_fonts += ttf-sazanami-gothic | ttf-kochi-gothic,
++ cjk_fonts += ttf-sazanami-mincho | ttf-kochi-mincho,
++else
++ cfk_fonts = fonts-nanum,
++ cjk_fonts += fonts-ipafont-gothic, fonts-ipafont-mincho,
++endif
++cjk_fonts += fonts-wqy-microhei, fonts-wqy-zenhei,
++ifneq (,$(filter $(distrel),squeeze wheezy))
++ cjk_fonts += ttf-indic-fonts,
++else ifneq (,$(filter $(distrel), lucid maverick natty oneiric precise quantal raring saucy trusty))
++ cjk_fonts += ttf-indic-fonts-core, ttf-telugu-fonts, ttf-oriya-fonts,
++ cjk_fonts += ttf-kannada-fonts, ttf-bengali-fonts,
++else
++ cjk_fonts += fonts-indic,
++endif
++
++p_jre = $(basename)-jre
++p_jrehl = $(basename)-jre-headless
++p_jrej = $(basename)-jre-jamvm
++p_jrez = $(basename)-jre-zero
++p_jdkhl = $(basename)-jdk-headless
++p_jdk = $(basename)-jdk
++p_demo = $(basename)-demo
++p_src = $(basename)-source
++p_doc = $(basename)-doc
++p_dbg = $(basename)-dbg
++
++d = debian/tmp
++d_jre = debian/$(p_jre)
++d_jrehl = debian/$(p_jrehl)
++d_jrej = debian/$(p_jrej)
++d_jrez = debian/$(p_jrez)
++d_jdkhl = debian/$(p_jdkhl)
++d_jdk = debian/$(p_jdk)
++d_demo = debian/$(p_demo)
++d_src = debian/$(p_src)
++d_doc = debian/$(p_doc)
++d_dbg = debian/$(p_dbg)
++
++control_vars = \
++ '-Vvm:Name=$(vm_name)' \
++ '-Vdlopenhl:Depends=$(dlopen_hl_depends)' \
++ '-Vdlopenhl:Recommends=$(dlopen_hl_recommends)' \
++ '-Vdlopenjre:Depends=$(dlopen_jre_depends)' \
++ '-Vdlopenjre:Recommends=$(dlopen_jre_recommends)' \
++ '-Vpkg:pulseaudio=$(pkg_pulseaudio)' \
++ '-Vxulrunner:Depends=$(xulrunner_depends)' \
++
++ifeq ($(with_bridge),atk)
++ ifneq (,$(filter $(distrel), squeeze wheezy jessie precise trusty xenial))
++ control_vars += '-Vdep:bridge=libatk-wrapper-java-jni (>= 0.30.4-0ubuntu2)'
++ else
++ control_vars += '-Vdep:bridge=libatk-wrapper-java-jni (>= 0.33.3-9~)'
++ endif
++else ifneq (,$(with_bridge))
++ ifneq (,$(DEB_HOST_MULTIARCH))
++ control_vars += '-Vdep:bridge=libaccess-bridge-java-jni (>= 1.26.2-6)'
++ else ifeq ($(with_jni_bridge),yes)
++ control_vars += '-Vdep:bridge=libaccess-bridge-java-jni'
++ else
++ control_vars += '-Vdep:bridge=libaccess-bridge-java'
++ endif
++endif
++
++ifeq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs)))
++ ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs)))
++ control_vars += '-Vdefaultvm:Provides=$(p_jre)-zero, $(p_jre)-shark'
++ else
++ control_vars += '-Vdefaultvm:Provides=$(p_jre)-zero'
++ endif
++endif
++ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs) $(altshark_archs)))
++ control_vars += '-Vzerovm:Provides=$(p_jre)-shark'
++endif
++
++pkg_certs = ca-certificates-java
++control_vars += '-Vcacert:Depends=$(pkg_certs)'
++
++bd_tzdata = tzdata,
++
++ifneq (,$(filter $(distrel), squeeze wheezy jessie lucid precise quantal raring saucy trusty utopic vivid))
++ control_vars += '-Vmountpoint:Depends=initscripts'
++else
++ control_vars += '-Vmountpoint:Depends=util-linux (>= 2.26.2-4)'
++endif
++
++# JRE Headless "Breaks:"
++control_vars += '-Vjrehl:Breaks=$(jrehl_breaks)'
++jrehl_breaks =
++# break on ca-certificates-java except for trusty (LP: #1706567)
++ifeq (,$(filter $(distrel), trusty))
++ jrehl_breaks += ca-certificates-java (<< 20160321~),
++endif
++# break on tzdata-java for stretch, see #857992
++# required when upgrading from jessie to stretch
++ifeq (,$(filter $(distrel), wheezy jessie trusty))
++ jrehl_breaks += tzdata-java
++endif
++
++pkg_jcommon = java-common (>= 0.28)
++control_vars += '-Vjcommon:Depends=$(pkg_jcommon)'
++
++debian/control: debian/control.in debian/rules
++ @cp -p debian/control debian/control.old
++ sed \
++ -e 's/@basename@/$(basename)/g' \
++ -e 's/@bd_autotools@/$(bd_autotools)/g' \
++ -e 's/@bd_bootstrap@/$(strip $(bd_bootstrap))/g' \
++ -e 's/@bd_cross@/$(strip $(bd_cross))/g' \
++ -e 's/@bd_openjdk@/$(bd_openjdk)/g' \
++ -e 's/@bd_zero@/$(bd_zero)/g' \
++ -e 's/@bd_gcc@/$(bd_gcc)/g' \
++ -e 's/@bd_syslibs@/$(bd_syslibs)/g' \
++ -e 's/@bd_fastjar@/$(bd_fastjar)/g' \
++ -e 's/@bd_pulsejava@/$(bd_pulsejava)/g' \
++ -e 's/@bd_nss@/$(bd_nss)/g' \
++ -e 's/@bd_systemtap@/$(bd_systemtap)/g' \
++ -e 's/@bd_shark@/$(bd_shark)/g' \
++ -e 's/@bd_ant@/$(bd_ant)/g' \
++ -e 's/@bd_tzdata@/$(bd_tzdata)/g' \
++ -e 's/@core_fonts@/$(core_fonts)/g' \
++ -e 's/@cjk_fonts@/$(cjk_fonts)/g' \
++ -e 's/@any_archs@/$(any_archs)/g' \
++ -e 's/@hotspot_archs@/$(hotspot_archs)/g' \
++ -e 's/@altzero_archs@/$(altzero_archs)/g' \
++ debian/control.in \
++ $(if $(transitional_jamvm_pkg), debian/control.jamvm-trans) \
++ $(if $(altzero_archs), debian/control.zero-jre) \
++ $(if $(DEB_HOST_MULTIARCH),,| grep -v '^Multi-Arch') \
++ > debian/control
++ @if cmp -s debian/control debian/control.old; then \
++ rm -f debian/control.old; \
++ else \
++ diff -u debian/control.old debian/control | wdiff -d -; \
++ echo "debian/control did change, please restart the build"; \
++ rm -f debian/control.old; \
++ exit 1; \
++ fi
++
++debian/tests/%.sh: debian/tests/%.in debian/rules
++ sed -e 's/@jtreg_archs@/$(jtreg_archs)/g' \
++ $< > $@;
++ chmod +x $@
++
++gen-autopkgtests: debian/tests/jtreg-autopkgtest.sh
++
++packaging-files:
++ for f in debian/*.in debian/patches/*.in; do \
++ case "$$f" in debian/control.in) continue; esac; \
++ f2=$$(echo $$f | sed 's/JB/$(basename)/;s/\.in$$//'); \
++ sed -e 's/@JRE@/$(p_jre)/g' \
++ -e 's/@JDK@/$(p_jdk)/g' \
++ -e 's/@vendor@/$(Vendor)/g' \
++ -e 's/@RELEASE@/$(shortver)/g' \
++ -e 's/@basename@/$(basename)/g' \
++ -e 's,@TOP@,$(TOP),g' \
++ -e 's,@basedir@,$(basedir),g' \
++ -e 's,@etcdir@,$(etcdir),g' \
++ -e 's,@jdiralias@,$(jdiralias),g' \
++ -e 's,@jdirname@,$(jdirname),g' \
++ -e 's/@srcname@/$(srcname)/g' \
++ -e 's/@jvmarch@/$(jvmarch)/g' \
++ -e 's/@archdir@/$(archdir)/g' \
++ -e 's/@tag@/$(tag)/g' \
++ -e 's/@priority@/$(priority)/g' \
++ -e 's/@mantag@/$(mantag)/g' \
++ -e 's/@multiarch@/$(DEB_HOST_MULTIARCH)/g' \
++ -e 's/@jre_hl_tools@/$(jre_hl_tools_alt)/g' \
++ -e 's/@jre_tools@/$(jre_tools_alt)/g' \
++ -e 's/@jdk_hl_tools@/$(jdk_hl_tools_alt)/g' \
++ -e 's/@jdk_tools@/$(jdk_tools_alt)/g' \
++ -e 's/@corba_tools@/$(corba_tools)/g' \
++ -e 's,@j2se_lib@,$(j2se_lib),g' \
++ -e 's,@j2se_share@,$(j2se_share),g' \
++ -e 's,@java_launcher@,$(java_launcher),g' \
++ -e 's/@cjk_fonts@/$(cjk_fonts)/g' \
++ $$f > $$f2; \
++ done
++ifneq (,$(filter $(DEB_HOST_ARCH), i386))
++# not yet in OpenJDK
++# cat debian/$(p_jre)-i586.menu >> $(d_jre).menu
++ rm -f debian/$(p_jre)-i586.menu
++endif
++
++configure: stamps/configure
++stamps/configure: stamps/patch
++ -cat /etc/hosts
++
++ mkdir -p bin
++ifeq (,$(filter $(DEB_HOST_ARCH), alpha amd64 arm64 hppa mips64 mips64el ppc64 ppc64el s390x sparc64 x32))
++ ( \
++ echo '#! /bin/sh'; \
++ echo 'if [ -x /usr/bin/linux32 ]; then'; \
++ echo ' exec /usr/bin/linux32 /bin/uname "$$@"'; \
++ echo 'else'; \
++ echo ' exec /bin/uname "$$@"'; \
++ echo 'fi'; \
++ ) > bin/uname
++ chmod +x bin/uname
++ echo "UNAME checks"
++ uname -a
++endif
++ /bin/uname -a
++ lsb_release -a
++
++ -cat /proc/sys/kernel/random/entropy_avail
++
++ mkdir -p stamps
++ mkdir -p $(builddir)
++ cd $(srcdir) && sh common/autoconf/autogen.sh
++ cd $(builddir) && $(EXTRA_BUILD_ENV) ../$(srcdir)/configure \
++ $(DEFAULT_CONFIGURE_ARGS) \
++ $(COMMON_CONFIGURE_ARGS)
++
++ touch $@
++
++stamps/zero-configure: stamps/build stamps/patch
++ mkdir -p stamps
++ mkdir -p $(zbuilddir)
++ cd $(zbuilddir) && $(EXTRA_BUILD_ENV) ../$(srcdir)/configure \
++ $(ZERO_CONFIGURE_ARGS) \
++ $(COMMON_CONFIGURE_ARGS)
++
++ touch $@
++
++stamps/sound-configure: stamps/build
++ rm -rf icedtea-sound
++ tar xf icedtea-sound.tar.xz
++ mv $$(tar tf icedtea-sound.tar.xz | head -1 | sed 's,/.*,,') \
++ icedtea-sound
++ patch -p1 < debian/patches/icedtea-sound.diff
++ if [ -x icedtea-sound/autogen.sh ]; then \
++ cd icedtea-sound && ./autogen.sh; \
++ fi
++ cd icedtea-sound && ./configure \
++ --build=$(DEB_BUILD_GNU_TYPE) \
++ --host=$(DEB_HOST_GNU_TYPE) \
++ --disable-maintainer-mode \
++ --with-jdk-home=$(BUILDJDK_HOME) \
++ CPPFLAGS="$(EXTRA_CPPFLAGS_IT)" \
++ CFLAGS="$(EXTRA_CFLAGS_IT)" \
++ CXXFLAGS="$(EXTRA_CXXFLAGS_IT)" \
++ LDFLAGS="$(EXTRA_LDFLAGS_IT)"
++ touch $@
++
++stamps/sound-build: stamps/sound-configure
++ $(MAKE) -C icedtea-sound
++ touch $@
++
++unpack: stamps/unpack
++stamps/unpack:
++ rm -rf $(srcdir)
++ mkdir -p $(srcdir)
++ tar -xf root.tar.xz --strip-components=1 -C $(srcdir)
++ chmod +x $(srcdir)/configure
++ for tb in corba jaxp jaxws langtools hotspot jdk nashorn; do \
++ tar -C $(srcdir) -x -f $$tb.tar.xz; \
++ done
++# FIXME: do the zero build from the hotspot.tar.gz
++ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_aarch64_archs)))
++ rm -rf $(srcdir)/hotspot
++ tar -C $(srcdir) -x -f hotspot-aarch64.tar.xz
++ mv $(srcdir)/$$(tar tf hotspot-aarch64.tar.xz | head -1 | sed 's,/.*,,') \
++ $(srcdir)/hotspot
++endif
++ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_aarch32_archs)))
++ rm -rf $(srcdir)/hotspot
++ tar -C $(srcdir) -x -f hotspot-aarch32.tar.xz
++ mv $(srcdir)/$$(tar tf hotspot-aarch32.tar.xz | head -1 | sed 's,/.*,,') \
++ $(srcdir)/hotspot
++endif
++
++ : # remove embedded libraries
++ find $(srcdir)/jdk/src/share/native/sun/awt/image/jpeg \
++ ! -name imageioJPEG.c ! -name jpegdecoder.c ! -name jinclude.h \
++ -type f -delete
++ rm -rf $(srcdir)/jdk/src/share/native/sun/awt/libpng/*
++ rm -rf $(srcdir)/jdk/src/share/native/sun/awt/giflib/*
++ rm -rf $(srcdir)/jdk/src/share/native/sun/java2d/cmm/lcms/cms*
++ rm -rf $(srcdir)/jdk/src/share/native/sun/java2d/cmm/lcms/lcms2*
++ rm -rf $$d/src/solaris/native/sun/security/smartcardio/MUSCLE
++
++ $(MAKE) -f debian/rules packaging-files
++
++ cp /usr/share/misc/config.* $(srcdir)/common/autoconf/build-aux/.
++
++ mkdir -p stamps
++ touch $@
++
++patch: stamps/patch
++stamps/patch: stamps/unpack
++ for i in $(DEFAULT_PATCHES); do \
++ echo $$i; \
++ done > $(srcdir)/series
++
++ cd $(srcdir) && \
++ QUILT_PATCHES=../debian/patches quilt --quiltrc - push -a
++ ( \
++ echo ""; echo "Patches applied in this version:"; \
++ for i in $$(egrep -v '^#|^ *$$' $(srcdir)/series); do \
++ echo ""; echo "$$i:"; \
++ sed -n 's/^# *DP: */ /p' debian/patches/$$i; \
++ done \
++ ) > stamps/pxx
++ mv stamps/pxx $@
++
++ifeq ($(with_check),yes)
++ ifneq (,$(filter $(DEB_HOST_ARCH), $(jtreg_archs)))
++ with_jtreg_check = $(default_vm)
++ endif
++
++ ifneq (,$(filter shark, $(alternate_vms)))
++ # shark hangs on ppc64
++ ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 powerpc powerpcspe))
++ # only activate after testing; hangs several tests.
++ with_jtreg_check += $(if $(filter $(DEB_HOST_ARCH),$(altshark_archs)),shark,zero)
++ endif
++ endif
++
++ ifneq (,$(filter zero, $(alternate_vms)))
++ ifneq (,$(filter $(DEB_HOST_ARCH), arm64 amd64 i386))
++ # only activate after testing; hangs several tests.
++ with_jtreg_check += zero
++ endif
++ endif
++endif
++
++build_stamps = \
++ stamps/build \
++ $(if $(filter $(DEB_HOST_ARCH),$(altzero_archs)),stamps/zero-build)
++
++ifeq ($(with_pulse),yes)
++ build_stamps += stamps/sound-build
++endif
++
++build_stamps += stamps/jtreg-check-default
++
++ifeq (0,1)
++build_stamps += stamps/jtreg-check-default
++build_stamps += $(if $(filter zero, $(alternate_vms)),stamps/jtreg-check-zero)
++ifneq (,$(filter shark, $(alternate_vms)))
++ ifneq (,$(filter $(DEB_HOST_ARCH),$(altshark_archs)))
++ build_stamps += stamps/jtreg-check-shark
++ else
++ build_stamps += stamps/jtreg-check-zero
++ endif
++endif
++endif
++
++pre-build:
++ifneq (,$(filter $(DEB_HOST_ARCH),s390))
++ @echo explicitely fail the build for $(DEB_HOST_ARCH), patches not updated
++#else ifneq (,$(filter $(DEB_HOST_ARCH),armel))
++# @echo explicitely fail the build for $(DEB_HOST_ARCH), ARM assembler interpreter not yet ported
++ false
++endif
++
++build-arch: build
++build-indep: build stamps/build-docs
++build: pre-build $(build_stamps)
++ if [ -f buildwatch.pid ]; then \
++ pid=$$(cat buildwatch.pid); \
++ kill -1 $$pid || :; sleep 10; kill -9 $$pid || :; \
++ fi
++ rm -f buildwatch.pid
++
++stamps/build: stamps/configure
++ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel armhf ia64 m68k mips mipsel mips64 mips64el powerpc powerpcspe s390x sparc sparc64))
++ sh -c 'sh debian/buildwatch.sh $(CURDIR)/$(builddir) &'
++endif
++ if $(EXTRA_BUILD_ENV) $(MAKE) -C $(builddir) $(build_target); then \
++ : ; \
++ else \
++ if [ -f buildwatch.pid ]; then \
++ pid=$$(cat buildwatch.pid); \
++ kill -1 $$pid || :; sleep 10; kill -9 $$pid || :; \
++ find $(builddir) -type f -name 'hs_err_pid*.log' -print -exec cat -tn {} \;; \
++ fi; \
++ false; \
++ fi
++
++ touch $@
++
++stamps/zero-build: stamps/zero-configure
++ : # FIXME: build using the just built jdk, and build the vm only
++ $(EXTRA_BUILD_ENV) $(MAKE) -C $(zbuilddir) images
++ rm -rf $(builddir)/$(sdkimg)/jre/lib/$(archdir)/zero
++ cp -a $(zbuilddir)/$(subst bootcycle-build/,,$(sdkimg))/jre/lib/$(archdir)/server \
++ $(builddir)/$(sdkimg)/jre/lib/$(archdir)/zero
++ touch $@
++
++stamps/build-docs: stamps/build
++ $(MAKE) -C $(builddir) docs
++ touch $@
++
++stamps/jtreg-check-default: stamps/build
++ $(MAKE) -f debian/rules jtreg-run-check VMNAME=$(default_vm) VMARGS= \
++ $(if $(filter $(default_vm),hotspot),TEST_SUITES='hotspot langtools jdk',TEST_SUITES='hotspot langtools')
++ touch $@
++
++stamps/jtreg-check-shark: stamps/build
++ $(MAKE) -f debian/rules jtreg-run-check VMNAME=shark VMARGS='-vmoption:-shark' \
++ TEST_SUITES='hotspot langtools'
++ touch $@
++
++stamps/jtreg-check-zero: stamps/build
++ $(MAKE) -f debian/rules jtreg-run-check VMNAME=zero VMARGS='-vmoption:-zero' \
++ TEST_SUITES='hotspot langtools'
++ touch $@
++
++jtreg-run-check:
++ mkdir -p jtreg-test-output
++ifneq (,$(filter $(VMNAME), $(with_jtreg_check)))
++ if [ ! -f $(builddir)/$(sdkimg)/jre/lib/security/java.security.install ]; then \
++ fgrep -v 'sun.security.pkcs11' $(builddir)/$(sdkimg)/jre/lib/security/java.security \
++ > $(builddir)/$(sdkimg)/jre/lib/security/java.security.test; \
++ mv $(builddir)/$(sdkimg)/jre/lib/security/java.security \
++ $(builddir)/$(sdkimg)/jre/lib/security/java.security.install; \
++ mv $(builddir)/$(sdkimg)/jre/lib/security/java.security.test \
++ $(builddir)/$(sdkimg)/jre/lib/security/java.security; \
++ fi
++
++ @echo "BEGIN jtreg"
++ $(TIME) $(MAKE) -f debian/rules -k jtregcheck \
++ $(if $(TEST_SUITES),TEST_SUITES="$(TEST_SUITES)") \
++ JTREG_OPTIONS='$(VMARGS)' \
++ 2>&1 | tee jtreg-test-output/jtreg_output-$(VMNAME)
++ @echo "END jtreg"
++
++ if [ -f $(builddir)/$(sdkimg)/jre/lib/security/java.security.install ]; then \
++ mv $(builddir)/$(sdkimg)/jre/lib/security/java.security.install \
++ $(builddir)/$(sdkimg)/jre/lib/security/java.security; \
++ fi
++
++ for i in check-hotspot.log check-jdk.log check-langtools.log jtreg-summary.log; do \
++ if [ -f jtreg-test-output/$$i ]; then \
++ mv jtreg-test-output/$$i jtreg-test-output/$${i%*.log}-$(VMNAME).log; \
++ else \
++ mkdir -p jtreg-test-output; \
++ fi; \
++ done
++
++ @echo "BEGIN jtreg-summary-$(VMNAME)"
++ -cat jtreg-test-output/jtreg-summary-$(VMNAME).log
++ @echo "END jtreg-summary-$(VMNAME)"
++
++ -for i in hotspot langtools jdk; do \
++ test -f jtreg-test-output/check-$$i-$(VMNAME).log || continue; \
++ for t in $$(egrep '^(FAILED|Error)' jtreg-test-output/check-$$i-$(VMNAME).log | sed 's/.* \(.*\)\.[^.][^.]*$$/\1/'); do \
++ echo jtreg-test-output/$$i/JTwork/$$t.jtr; \
++ done; \
++ done > jtreg-test-output/failed_tests-$(VMNAME).list
++ GZIP=-9vn tar -C . -c -z -f jtreg-test-output/failed_tests-$(VMNAME).tar.gz -T jtreg-test-output/failed_tests-$(VMNAME).list
++ GZIP=-9vn tar -C . -c -z -f jtreg-test-output/jtreport-$(VMNAME).tar.gz jtreg-test-output/*/JTreport/
++else
++ echo "jtreg harness not run for this build" > jtreg-test-output/jtreg_output-$(VMNAME)
++endif
++
++# ----------------------------------------------------------------------------
++# jtreg targets taken from IcedTea
++
++TESTS_TO_RUN = $(addprefix check-,$(TEST_SUITES))
++
++check-hotspot: stamps/build
++ mkdir -p jtreg-test-output/hotspot
++ JTREG_OPTIONS=$(JTREG_OPTIONS) VMNAME=$(VMNAME) JDK_DIR=$(builddir)/$(sdkimg) \
++ AUTOPKGTEST_TMP=/tmp/ AUTOPKGTEST_ARTIFACTS=jtreg-test-output/hotspot/ \
++ $(TIME) debian/tests/hotspot | tee jtreg-test-output/$@.log
++
++check-langtools: stamps/build
++ mkdir -p jtreg-test-output/langtools
++ JTREG_OPTIONS=$(JTREG_OPTIONS) VMNAME=$(VMNAME) JDK_DIR=$(builddir)/$(sdkimg) \
++ AUTOPKGTEST_TMP=/tmp/ AUTOPKGTEST_ARTIFACTS=jtreg-test-output/langtools/ \
++ $(TIME) debian/tests/langtools | tee jtreg-test-output/$@.log
++
++check-jdk: stamps/build
++ mkdir -p jtreg-test-output/jdk
++ JTREG_OPTIONS=$(JTREG_OPTIONS) VMNAME=$(VMNAME) JDK_DIR=$(builddir)/$(sdkimg) \
++ AUTOPKGTEST_TMP=/tmp/ AUTOPKGTEST_ARTIFACTS=jtreg-test-output/jdk/ \
++ $(TIME) debian/tests/jdk | tee jtreg-test-output/$@.log
++
++jtregcheck: $(TESTS_TO_RUN)
++ for i in $(TEST_SUITES); do \
++ echo "--------------- jtreg console summary for $$i ---------------"; \
++ egrep -v '^(Passed:|Directory|Re[a-z]+\ written\ to)' jtreg-test-output/check-$$i.log; \
++ done | tee jtreg-test-output/jtreg-summary.log
++
++# ----------------------------------------------------------------------------
++
++clean: debian-clean
++ dh_testdir
++ dh_testroot
++ rm -rf $(srcdir)
++ rm -rf stamps build build-* test jtreg-test-output
++ rm -rf icedtea-sound
++ rm -rf autom4te.cache
++ rm -rf bin
++ rm -f buildwatch.pid
++
++ dh_clean
++
++debian-clean:
++ dh_testdir
++ dh_testroot
++ dh_prep || dh_clean -k
++ for f in debian/*.in debian/patches/*.in; do \
++ f2=$$(echo $$f | sed 's/JB/$(basename)/;s/\.in$$//'); \
++ case "$$f2" in debian/control) continue; esac; \
++ rm -f $$f2; \
++ done
++ rm -f debian/*.install debian/*.links debian/*.debhelper.log
++
++lib_ext_dirs = common $(sort $(foreach arch,$(arch_map),$(firstword $(subst =,$(SPACE),$(arch)))))
++ifeq ($(derivative),Ubuntu)
++ lib_ext_dirs := $(filter-out arm hppa m68k mips% powerpcspe s390% sh%, $(lib_ext_dirs))
++else
++ lib_ext_dirs := $(filter-out arm hppa, $(lib_ext_dirs))
++endif
++
++install: packaging-files
++ dh_testdir
++ dh_testroot
++ dh_prep || dh_clean -k
++ rm -f debian/*.install debian/*.links
++ dh_installdirs
++
++ : # install into temporary location
++ mkdir -p $(d)/$(basedir)
++ cp -a $(builddir)/$(sdkimg)/* $(d)/$(basedir)/
++# FIXME: still needed?
++# cp -a build/$(jreimg)/man $(d)/$(basedir)/jre/
++
++ifeq ($(with_pulse),yes)
++ cp icedtea-sound/icedtea-sound.jar $(d)/$(basedir)/jre/lib/ext/.
++ cp icedtea-sound/build/native/libicedtea-sound.so \
++ $(d)/$(basedir)/jre/lib/$(archdir)/.
++endif
++
++ifneq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 kfreebsd-i386))
++ cp -a $(d)/$(basedir)/include/bsd $(d)/$(basedir)/include/linux
++ : # Easy fix for #851053
++ mv $(d)/$(basedir)/jre/lib/$(archdir)/jspawnhelper $(d)/$(basedir)/jre/lib/
++endif
++
++ chmod -R u+w $(d)
++
++ : # use javaws from icedtea-netx
++ find $(d) -name 'javaws*' | xargs -r rm -f
++
++ : # install default jvm config file
++ifeq (,$(filter $(DEB_HOST_ARCH),$(hotspot_aarch32_archs)))
++ cp debian/jvm.cfg-default $(d)/$(basedir)/jre/lib/$(archdir)/
++else
++ cp debian/jvm.cfg-client_default $(d)/$(basedir)/jre/lib/$(archdir)/jvm.cfg-default
++endif
++
++ : # compress manpages
++ find $(d)/$(basedir)/man $(d)/$(basedir)/jre/man -type f ! -type l \
++ | xargs gzip -9v -n
++
++ : # copy man pages into the jre/man directory
++ mkdir -p $(d)/$(basedir)/jre/man/man1
++ mkdir -p $(d)/$(basedir)/jre/man/ja_JP.UTF-8/man1
++ for i in $(d)/$(basedir)/jre/bin/*; do \
++ b=$$(basename $$i); \
++ cp -p $(d)/$(basedir)/man/man1/$$b.1.gz $(d)/$(basedir)/jre/man/man1/.; \
++ cp -p $(d)/$(basedir)/man/ja_JP.UTF-8/man1/$$b.1.gz $(d)/$(basedir)/jre/man/ja_JP.UTF-8/man1/.; \
++ done
++ cp -a $(d)/$(basedir)/man/ja $(d)/$(basedir)/jre/man/.
++
++ : # replace common files in jdk and jre by symlinks
++ @cd $(d)/$(basedir); \
++ for i in `find jre -type f`; do \
++ i2=$${i#jre/*}; \
++ if [ -f $$i2 ]; then \
++ if cmp -s $$i $$i2; then \
++ : ; \
++ else \
++ echo "XXX: differing files"; \
++ md5sum $$i $$i2; \
++ fi; \
++ else \
++ continue; \
++ fi; \
++ d=$$(echo ./$$i2 | sed -r 's,[^/]+/,../,g;s,/[^/]+$$,,;s,\.\.$$,,'); \
++ echo " symlink $$i2 -> $$d$$i"; \
++ ln -sf $$d$$i $$i2; \
++ done
++
++ mkdir -p $(d)/$(etcdir)/security
++ mkdir -p $(d)/$(etcdir)/management
++ mkdir -p $(d)/$(etcdir)/images/cursors
++
++ : # rename templates (comments only) to config files,
++ : # and move to /$(etcdir)
++ for i in \
++ management/jmxremote.password \
++ management/snmp.acl; \
++ do \
++ mv $(d)/$(basedir)/jre/lib/$$i.template $(d)/$(etcdir)/$$i; \
++ done
++
++ifeq ($(with_bridge),atk)
++ ifneq (,$(filter $(distrel),lenny wheezy squeeze jessie lucid precise quantal raring saucy trusty utopic vivid))
++ cp -p debian/accessibility-atk.properties.disabled \
++ $(d)/$(basedir)/jre/lib/accessibility.properties
++ else
++ cp -p debian/accessibility-atk.properties.enabled \
++ $(d)/$(basedir)/jre/lib/accessibility.properties
++ endif
++else ifneq (,$(with_bridge))
++ cp -p debian/accessibility.properties $(d)/$(basedir)/jre/lib/
++endif
++ cp -p debian/swing.properties $(d)/$(basedir)/jre/lib/
++
++ifneq (,$(pkg_certs))
++ rm -f $(d)/$(basedir)/jre/lib/security/cacerts
++endif
++
++ : # FIXME: merge nss changes from IcedTea
++ cp debian/nss.cfg $(d)/$(basedir)/jre/lib/security/nss.cfg
++
++ : # move config files to $(etcdir) and symlink them.
++ for i in \
++ $(if $(with_bridge),accessibility.properties) \
++ calendars.properties \
++ content-types.properties \
++ images/cursors/cursors.properties \
++ logging.properties \
++ sound.properties \
++ flavormap.properties \
++ net.properties \
++ psfontj2d.properties \
++ psfont.properties.ja \
++ swing.properties \
++ tz.properties \
++ management/jmxremote.access \
++ management/management.properties \
++ security/java.policy \
++ security/java.security \
++ $$([ -f $(d)/$(basedir)/jre/lib/security/nss.cfg ] && echo security/nss.cfg) \
++ $(if $(findstring ca-cert,$(pkg_certs)),,security/cacerts) \
++ security/blacklisted.certs; \
++ do \
++ mv $(d)/$(basedir)/jre/lib/$$i $(d)/$(etcdir)/$$i; \
++ done
++ mv $(d)/$(basedir)/jre/lib/$(archdir)/jvm.cfg \
++ $(d)/$(etcdir)/
++ifneq (,$(filter shark zero,$(alternate_vms)))
++ # a zero alternate vm was build
++ printf -- '-zero KNOWN\n' >> $(d)/$(etcdir)/jvm.cfg
++else ifeq (,$(filter $(DEB_HOST_ARCH),$(hotspot_archs)))
++ # not a hotspot arch, so alias zero to server
++ printf -- '-zero ALIASED_TO -server\n' >> $(d)/$(etcdir)/jvm.cfg
++endif
++
++ : # FIXME: avian working with 8?
++ : # printf -- '-avian KNOWN\n' >> $(d)/$(etcdir)/jvm.cfg
++ printf -- '-dcevm KNOWN\n' >> $(d)/$(etcdir)/jvm.cfg
++
++ifeq (0,1)
++# FIXME: XXX
++ mv $(d)/$(basedir)/jre/lib/fontconfig.Ubuntu.properties.src \
++ $(d)/$(etcdir)/fontconfig.properties
++endif
++
++ : # remove files which we do not want to distribute
++ rm -f $(d)/$(basedir)/jre/lib/fontconfig*.properties.src
++ rm -f $(d)/$(basedir)/jre/lib/fontconfig*.bfc
++ rm -f $(d)/$(basedir)/jre/lib/$(archdir)/*/classes.jsa
++
++ : # remove empty directories
++ rmdir $(d)/$(basedir)/jre/lib/management
++ rmdir $(d)/$(basedir)/jre/lib/applet
++# rmdir $(d)/$(basedir)/jre/lib/security
++
++ : # FIXME: fix, move and install tapset files
++ rm -rf $(d)/$(basedir)/tapset
++
++ : # TODO: why do we provide a custom font.properties.ja?
++ : # cp -p debian/font.properties.ja $(d_jbin)/$(etcdir)/.
++# cp debian/font.properties.wgy_zenhai \
++# $(d)/$(etcdir)/font.properties.ja
++
++
++ : # now move things to the packages. it is so ****** to create
++ : # .install files first. dh_movefiles did do the job perfectly
++
++ : # $(p_jrehl).install / $(p_jre).install
++ ( \
++ echo 'etc'; \
++ echo '$(basedir)/jre/lib/jexec'; \
++ echo '$(basedir)/jre/lib/rt.jar'; \
++ echo '$(basedir)/jre/lib/security/policy'; \
++ echo '$(basedir)/jre/man/ja'; \
++ echo '$(basedir)/man/ja'; \
++ echo '$(basedir)/bin/java-rmi.cgi'; \
++ ) > debian/$(p_jrehl).install
++ifneq (,$(DEB_HOST_MULTIARCH))
++ ( \
++ echo '$(basedir)/jre/lib/meta-index'; \
++ echo '$(basedir)/jre/lib/ext/meta-index'; \
++ ) >> debian/$(p_jrehl).install
++endif
++ifeq ($(derivative),Ubuntu)
++ ( \
++ echo 'usr/share/apport/package-hooks'; \
++ ) >> debian/$(p_jrehl).install
++endif
++ $(RM) debian/$(p_jre).install
++
++ cd $(CURDIR)/$(d); \
++ for i in $(basedir)/jre/{bin,man/man1,man/ja_JP.UTF-8/man1}/*; do \
++ case "$$i" in \
++ */policytool*) echo $$i >> ../$(p_jre).install;; \
++ *) echo $$i >> ../$(p_jrehl).install; \
++ esac; \
++ done
++
++ cd $(CURDIR)/$(d); \
++ for i in $(basedir)/{bin,man/man1,man/ja_JP.UTF-8/man1}/*; do \
++ [ -h $$i ] || continue; \
++ case "$$i" in \
++ */policytool*) echo $$i >> ../$(p_jre).install;; \
++ *) echo $$i >> ../$(p_jrehl).install; \
++ esac; \
++ done; \
++
++ cd $(CURDIR)/$(d); \
++ for i in $(basedir)/jre/lib/$(archdir)/*; do \
++ case "$$i" in \
++ */libjavagtk.so|*/libsplashscreen.so|*/libjsoundalsa.so|$(if $(with_pulse),*/libicedtea-sound.so|)*/xawt) echo $$i >> ../$(p_jre).install;; \
++ */zero|*/shark) echo $$i >> ../$(p_jrez).install;; \
++ *) echo $$i >> ../$(p_jrehl).install; \
++ esac; \
++ done
++
++ : # $(p_jrehl).install
++ ( \
++ echo '$(basedir)/jre/ASSEMBLY_EXCEPTION $(commonbasedir)/jre/'; \
++ echo '$(basedir)/jre/THIRD_PARTY_README $(commonbasedir)/jre/'; \
++ cd $(d); \
++ for i in $(basedir)/jre/lib/*; do \
++ case "$$i" in \
++ */$(archdir)|*/jexec|*/rt.jar|*/security$(if $(DEB_HOST_MULTIARCH),|*/meta-index)) \
++ continue; \
++ esac; \
++ echo $$i $(commonbasedir)/jre/lib/; \
++ done; \
++ ) >> debian/$(p_jrehl).install
++
++ : # $(p_jdkhl).install
++ ( \
++ cd $(d); \
++ for i in $(basedir)/include/*.h; do \
++ case $$i in */jawt.h) continue; esac; \
++ [ -h $$i ] && continue; \
++ echo $$i; \
++ done; \
++ echo '$(basedir)/include/*/jni_md.h'; \
++ echo '$(basedir)/lib/jexec'; \
++ echo '$(basedir)/LICENSE'; \
++ echo '$(basedir)/ASSEMBLY_EXCEPTION'; \
++ echo '$(basedir)/THIRD_PARTY_README'; \
++ for i in $(basedir)/lib/*; do \
++ case $$i in */jconsole.jar) continue; esac; \
++ [ -h $$i ] && continue; \
++ echo $$i; \
++ done; \
++ for i in $(basedir)/{bin,man/man1,man/ja_JP.UTF-8/man1}/*; do \
++ case $$i in */appletviewer*|*/jconsole*) continue; esac; \
++ [ -h $$i -o "$$i" = $(basedir)/bin/java-rmi.cgi ] && continue; \
++ echo $$i; \
++ done; \
++ ) > debian/$(p_jdkhl).install
++
++ : # $(p_jdk).install
++ ( \
++ cd $(d); \
++ for i in $(basedir)/include/*.h; do \
++ case $$i in */jawt.h) : ;; *) continue; esac; \
++ [ -h $$i ] && continue; \
++ echo $$i; \
++ done; \
++ echo '$(basedir)/include/*/jawt_md.h'; \
++ for i in $(basedir)/lib/*; do \
++ case $$i in */jconsole.jar) : ;; *) continue; esac; \
++ [ -h $$i ] && continue; \
++ echo $$i; \
++ done; \
++ for i in $(basedir)/{bin,man/man1,man/ja_JP.UTF-8/man1}/*; do \
++ case $$i in */appletviewer*|*/jconsole*) : ;; *) continue; esac; \
++ [ -h $$i -o "$$i" = $(basedir)/bin/java-rmi.cgi ] && continue; \
++ echo $$i; \
++ done; \
++ ) > debian/$(p_jdk).install
++
++ : # $(p_src).install
++ ( \
++ echo '$(basedir)/src.zip $(TOP)/$(basename)/'; \
++ ) > debian/$(p_src).install
++
++ : # copy apport hook
++ifeq ($(derivative),Ubuntu)
++ mkdir -p $(d)/usr/share/apport/package-hooks/
++ cp debian/apport-hook.py $(d)/usr/share/apport/package-hooks/source_openjdk-8.py
++endif
++ : # move demos and samples, create symlinks for $(p_demo)
++ mkdir -p $(d)/usr/share/doc/$(p_jrehl)/demo
++ for i in $(d)/$(basedir)/demo/*; do \
++ b=$$(basename $$i); \
++ case "$$i" in \
++ */jvmti) \
++ echo $(basedir)/demo/$$b usr/share/doc/$(p_jrehl)/demo/$$b >> $(d_demo).links;; \
++ *) \
++ mv $$i $(d)/usr/share/doc/$(p_jrehl)/demo/$$b; \
++ echo usr/share/doc/$(p_jrehl)/demo/$$b $(basedir)/demo/$$b >> $(d_demo).links;; \
++ esac; \
++ done
++ mv $(d)/$(basedir)/sample $(d)/usr/share/doc/$(p_jrehl)/examples
++ echo usr/share/doc/$(p_jrehl)/examples $(basedir)/sample >> $(d_demo).links
++ echo usr/share/doc/$(p_jre) usr/share/doc/$(p_demo) >> $(d_demo).links
++
++ : # $(p_demo).install
++ ( \
++ echo '$(basedir)/demo'; \
++ echo 'usr/share/doc/$(p_jrehl)/examples'; \
++ echo 'usr/share/doc/$(p_jrehl)/demo'; \
++ ) > debian/$(p_demo).install
++
++ : # $(p_dbg).install
++ifneq (,$(wildcard $(d)/$(basedir)/jre/lib/$(archdir)/*.diz))
++ ( \
++ echo '$(basedir)/jre/lib/$(archdir)/*.diz'; \
++ echo '$(basedir)/jre/lib/$(archdir)/*/*.diz'; \
++ ) > debian/$(p_dbg).install
++endif
++ifneq (,$(wildcard $(d)/$(basedir)/jre/lib/$(archdir)/*.debuginfo))
++ ( \
++ echo '$(basedir)/jre/lib/$(archdir)/*.debuginfo'; \
++ echo '$(basedir)/jre/lib/$(archdir)/*/*.debuginfo'; \
++ ) > debian/$(p_dbg).install
++endif
++
++ dh_install --sourcedir=debian/tmp --fail-missing -XLICENSE -Xrelease
++
++ find $(d_jrehl) $(d_jre) $(d_jrez) $(d_jrej) -type f \
++ \( -name '*.debuginfo' -o -name '*.diz' \) -print | xargs -r rm -f
++
++ifneq (,$(DEB_HOST_MULTIARCH))
++ rm -f $(d_jrehl)/$(commonbasedir)/jre/lib/ext/meta-index
++endif
++
++ : # give all permissions to cross-VM extension directory
++ sed -i \
++ -e '/permission java\.security\.AllPermission;/,/};/c\' \
++ -e ' permission java.security.AllPermission;\' \
++ -e '};\' \
++ -e '\' \
++ $(if $(DEB_HOST_MULTIARCH),$(foreach i, $(lib_ext_dirs), \
++ -e 'grant codeBase "file:/$(TOP)/java-$(shortver)-$(origin)-$(i)/jre/lib/ext/*" {\' \
++ -e ' permission java.security.AllPermission;\' \
++ -e '};\')) \
++ -e '\' \
++ -e '// Comment this out if you want to give all permissions to the\' \
++ -e '// Debian Java repository too:\' \
++ -e '//grant codeBase "file:/usr/share/java/repository/-" {\' \
++ -e '// permission java.security.AllPermission;\' \
++ -e '//};\' \
++ -e '' \
++ $(d_jrehl)/$(security)/java.policy
++# 'make Emacs Makefile mode happy
++
++ dh_installdirs -p$(p_jrehl) \
++ usr/share/doc/$(p_jrehl) \
++ usr/share/binfmts
++
++ dh_installdirs -p$(p_jre) \
++ usr/share/applications \
++ usr/share/application-registry \
++ usr/share/mime-info \
++ usr/share/pixmaps
++
++ : # add GNOME stuff
++ cp -p debian/$(basename)-policytool.desktop \
++ $(d_jre)/usr/share/applications/
++ifneq (,$(findstring cautious-launcher, $(java_launcher)))
++ cp -p debian/$(basename)-java.desktop \
++ $(d_jre)/usr/share/applications/
++endif
++
++ for i in archive; do \
++ cp debian/$(basename)-$$i.applications \
++ $(d_jre)/usr/share/application-registry/; \
++ cp debian/$(basename)-$$i.keys $(d_jre)/usr/share/mime-info/; \
++ cp debian/$(basename)-$$i.mime $(d_jre)/usr/share/mime-info/; \
++ done
++
++ cp -p debian/sun_java.xpm \
++ $(d_jre)/usr/share/pixmaps/$(basename).xpm
++
++ mkdir -p $(d_demo)/usr/share/pixmaps
++ cp -p debian/sun_java_app.xpm \
++ $(d_demo)/usr/share/pixmaps/$(basename)-app.xpm
++
++ : # install icons
++ for i in 16 24 32 48; do \
++ install -D -m 644 -p src/jdk/src/solaris/classes/sun/awt/X11/java-icon$${i}.png \
++ $(d_jre)/usr/share/icons/hicolor/$${i}x$${i}/apps/$(basename).png; \
++ done
++
++ : # create docdir symlinks for $(p_jrehl)
++ ( \
++ echo usr/share/doc/$(p_jrehl) $(basedir)/docs; \
++ ) > $(d_jrehl).links
++ifneq (,$(DEB_HOST_MULTIARCH))
++ echo '/$(basedir) /usr/lib/jvm/$(jdirname)' >> $(d_jrehl).links
++endif
++
++ : # create docdir symlinks for $(p_jre)
++ ( \
++ echo usr/share/doc/$(p_jrehl) usr/share/doc/$(p_jre); \
++ ) > $(d_jre).links
++
++ifneq (,$(filter shark zero, $(alternate_vms)))
++ : # create docdir symlinks for $(p_jrez)
++ ( \
++ echo usr/share/doc/$(p_jrehl) usr/share/doc/$(p_jrez); \
++ ) > $(d_jrez).links
++endif
++
++ : # create docdir symlinks for $(p_src)
++ ( \
++ echo usr/share/doc/$(p_jre) usr/share/doc/$(p_src); \
++ ) > $(d_src).links
++
++ : # create docdir symlinks for $(p_jdkhl)
++ ( \
++ echo usr/share/doc/$(p_jrehl) usr/share/doc/$(p_jdkhl); \
++ ) > $(d_jdkhl).links
++
++ : # create docdir symlinks for $(p_jdk)
++ ( \
++ echo usr/share/doc/$(p_jre) usr/share/doc/$(p_jdk); \
++ ) > $(d_jdk).links
++# doesn't work, no package dependency
++ifneq (,$(DEB_HOST_MULTIARCH))
++ echo '$(TOP)/$(basename)/src.zip $(basedir)/src.zip' >> $(d_jdkhl).links
++endif
++
++ : # create docdir symlinks for $(p_dbg)
++ ( \
++ echo usr/share/doc/$(p_jrehl) usr/share/doc/$(p_dbg); \
++ ) > $(d_dbg).links
++
++ifeq ($(with_bridge),atk)
++ : # create links for the atk wrapper
++ echo "usr/share/java/java-atk-wrapper.jar $(basedir)/jre/lib/ext/java-atk-wrapper.jar" \
++ >> $(d_jre).links
++ echo "usr/lib$(multiarch_dir)/jni/libatk-wrapper.so $(basedir)/jre/lib/ext/libatk-wrapper.so" \
++ >> $(d_jre).links
++else ifneq (,$(with_bridge))
++ : # create links for the gnome accessibility bridge
++ echo "usr/share/java/gnome-java-bridge.jar $(basedir)/jre/lib/ext/gnome-java-bridge.jar" \
++ >> $(d_jre).links
++ ifeq ($(with_jni_bridge),yes)
++ echo "usr/lib$(multiarch_dir)/jni/libjava-access-bridge-jni.so $(basedir)/jre/lib/ext/libjava-access-bridge-jni.so" \
++ >> $(d_jre).links
++ endif
++endif
++
++ : # create links for the config files
++ find $(d_jrehl)/$(etcdir) -type f ! -name jvm.cfg \
++ -printf "$(etcdir)/%P $(basedir)/jre/lib/%P\n" >> $(d_jrehl).links
++ifneq (,$(DEB_HOST_MULTIARCH))
++ mv $(d_jrehl)/$(etcdir)/jvm.cfg \
++ $(d_jrehl)/$(etcdir)/jvm-$(DEB_HOST_ARCH).cfg
++ ( \
++ echo "$(etcdir)/jvm-$(DEB_HOST_ARCH).cfg $(basedir)/jre/lib/$(archdir)/jvm.cfg"; \
++ ) >> $(d_jrehl).links
++else
++ ( \
++ echo "$(etcdir)/jvm.cfg $(basedir)/jre/lib/$(archdir)/jvm.cfg"; \
++ ) >> $(d_jrehl).links
++endif
++ifneq (,$(pkg_certs))
++ echo "etc/ssl/certs/java/cacerts $(basedir)/jre/lib/security/cacerts" \
++ >> $(d_jrehl).links
++endif
++
++ @echo JRE_HL_TOOLS: $(jre_hl_tools_alt) jexec
++ @echo JRE_TOOLS: $(jre_tools_alt)
++ @echo JDK_HL_TOOLS: $(jdk_hl_tools_alt)
++ @echo JDK_TOOLS: $(jdk_tools_alt)
++ ( \
++ echo 'name=$(jdirname)'; \
++ echo 'alias=$(jdiralias)'; \
++ echo 'priority=$(priority)'; \
++ echo 'section=main'; \
++ echo ''; \
++ for i in $(jre_hl_tools_alt); do \
++ echo "hl $$i /$(basedir)/jre/bin/$$i"; \
++ done; \
++ echo "hl jexec /$(basedir)/jre/lib/jexec"; \
++ for i in $(jre_tools_alt); do \
++ echo "jre $$i /$(basedir)/jre/bin/$$i"; \
++ done; \
++ for i in $(jdk_hl_tools_alt); do \
++ echo "jdkhl $$i /$(basedir)/bin/$$i"; \
++ done; \
++ for i in $(jdk_tools_alt); do \
++ echo "jdk $$i /$(basedir)/bin/$$i"; \
++ done; \
++ for d in $(browser_plugin_dirs); do \
++ echo "plugin $$d-javaplugin.so /$(basedir)/jre/lib/$(archdir)/$(plugin_name)"; \
++ done; \
++ ) > $(d_jrehl)/$(TOP)/.$(jdiralias).jinfo
++
++ ( \
++ echo 'package $(basename)'; \
++ echo 'interpreter /usr/bin/jexec'; \
++ echo 'magic PK\x03\x04'; \
++ ) > $(d_jrehl)/$(basedir)/jre/lib/jar.binfmt
++
++ : # another jvm symlink
++ ln -sf $(jdirname) $(d_jrehl)/usr/lib/jvm/$(jdiralias)
++ mkdir -p $(d_jrehl)/usr/lib/debug/usr/lib/jvm
++ ln -sf $(jdirname) $(d_jrehl)/usr/lib/debug/usr/lib/jvm/$(jdiralias)
++
++ifeq ($(with_systemtap),yes FIXME)
++ : # systemtap support
++ mkdir -p $(d_jrehl)/usr/share/systemtap/tapset
++ cp -p build/tapset/hotspot.stp $(d_jrehl)/usr/share/systemtap/tapset/
++endif
++
++ : # OpenJDK Stack Unwinder and Frame Decorator
++ifneq (,$(filter $(DEB_HOST_ARCH),amd64 kfreebsd-amd64))
++ mkdir -p $(d_jrehl)/usr/share/gdb/auto-load/$(basedir)/jre/lib/$(archdir)/server
++ cp debian/dbg8.py \
++ $(d_jrehl)/usr/share/gdb/auto-load/$(basedir)/jre/lib/$(archdir)/server/libjvm.so-gdb.py
++ ifneq (,$(filter zero, $(alternate_vms)))
++ mkdir -p $(d_jrez)/usr/share/gdb/auto-load/$(basedir)/jre/lib/$(archdir)/zero
++ ln -sf ../server/libjvm.so-gdb.py \
++ $(d_jrez)/usr/share/gdb/auto-load/$(basedir)/jre/lib/$(archdir)/zero/libjvm.so
++ endif
++endif
++
++ifeq (0,1)
++ : # Install stuff to generate font config and timezone files.
++ mkdir -p $(d_jrehl)/$(commonbasedir)/jre/lib
++# FIXME: not built in 8
++ cp -p build/openjdk.build/btjars/compilefontconfig.jar \
++ $(d_jrehl)/$(commonbasedir)/jre/lib/
++ cp -p build/openjdk.build/btjars/javazic.jar \
++ $(d_jrehl)/$(commonbasedir)/jre/lib/
++endif
++
++ : # install lintian overrides
++ for FILE in debian/*.overrides; do \
++ PKG=`basename $$FILE .overrides`; \
++ install -D -m644 $$FILE debian/$$PKG/usr/share/lintian/overrides/$$PKG; \
++ done
++
++nodocs = $(if $(findstring nodocs, $(DEB_BUILD_OPTIONS)),-N$(p_doc))
++nojrez = $(if $(filter shark zero, $(alternate_vms)),,-N$(p_jrez))
++
++# Build architecture independant packages
++binary-indep: build stamps/build-docs install
++ dh_testdir
++ dh_testroot
++ifeq ($(with_docs),yes)
++ dh_installchangelogs -p$(p_doc)
++ dh_installdocs -p$(p_doc)
++ mkdir -p $(d_doc)/usr/share/doc/$(p_jrehl)
++ for i in $(builddir)/docs/*; do \
++ [ -e $$i ] || continue; \
++ b=$$(basename $$i); \
++ cp -a $$i $(d_doc)/usr/share/doc/$(p_jrehl)/; \
++ ln -sf ../$(p_jrehl)/$$b $(d_doc)/usr/share/doc/$(p_doc)/$$b; \
++ done
++endif
++# FIXME: desktop and menu files not ready for multiarch. #658321
++ifeq (,$(DEB_HOST_MULTIARCH))
++ dh_installmenu -i $(nodocs)
++endif
++ -dh_icons -i $(nodocs) || dh_iconcache -i $(nodocs)
++# dh_installdebconf -i $(nodocs)
++ dh_link -i $(nodocs)
++ dh_compress -i $(nodocs) -Xexamples -Xdemo -Xpackage-list
++ dh_fixperms -i $(nodocs)
++ dh_installdeb -i $(nodocs)
++ dh_gencontrol -i $(nodocs) -- $(control_vars)
++ dh_md5sums -i $(nodocs)
++ dh_builddeb -i $(nodocs) $(bd_options)
++
++absarchdir = $(CURDIR)/$(d_jrehl)/$(basedir)/jre/lib/$(archdir)
++shlibdeps_ld_path =$(absarchdir):$(absarchdir)/client:$(absarchdir)/server:$(absarchdir)/native_threads$(if $(xulrunner_depends),:$(shell pkg-config --libs-only-L libxul | sed 's/^-L//;s/-devel//;s,/lib *$$,,'))
++
++# pass vm name as first argument
++define install_test_results
++ mkdir -p $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)
++ -cp jtreg_output-$(1) \
++ $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/jtreg_output-$(1).log
++ -cp jtreg-test-output/jtreg-summary-$(1).log jtreg-test-output/check-*-$(1).log \
++ $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/
++ -cp jtreg-test-output/failed_tests-$(1).tar.gz \
++ $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/failed_tests-$(1).tar.gz
++ -cp jtreg-test-output/jtreport-$(1).tar.gz \
++ $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/jtreport-$(1).tar.gz
++endef
++
++# Build architecture dependant packages
++binary-arch: build install
++ dh_testdir
++ dh_testroot
++ dh_installchangelogs -p$(p_jrehl)
++ dh_installdocs -p$(p_jrehl) \
++ debian/JAVA_HOME \
++ debian/README.alternatives \
++ debian/README.Debian
++ifeq (0,1)
++# FIXME: IcedTea specific bits
++ for i in AUTHORS NEWS README; do \
++ cp -p $$i $(d_jrehl)/usr/share/doc/$(p_jrehl)/$$i.IcedTea; \
++ done
++endif
++ $(call install_test_results,$(default_vm))
++
++ifeq ($(transitional_jamvm_pkg),yes)
++ dh_installchangelogs -p$(p_jrej)
++ dh_installdocs -p$(p_jrej)
++endif
++ifneq (,$(filter zero, $(alternate_vms)))
++ $(call install_test_results,zero)
++endif
++# FIXME: desktop and menu files not ready for multiarch. #658321
++ifeq (,$(DEB_HOST_MULTIARCH))
++ dh_installmenu -s $(nodemo) $(nojrez)
++endif
++ -dh_icons -s $(nodemo) $(nojrez) \
++ || dh_iconcache -s $(nodemo) $(nojrez)
++# dh_installdebconf -s $(nodemo) $(nojrez)
++ dh_link -s $(nodemo) $(nojrez)
++ $(if $(filter $(dh_version), 5 6 7 8),NADA=,DH_COMPAT=9) dh_strip -s \
++ $(nodemo) $(nojrez) \
++ -Xlibjvm.so -X.debuginfo --dbg-package=$(p_dbg)
++
++ifeq (,$(findstring nostrip, $(DEB_BUILD_OPTIONS)))
++ set -ex; \
++ for i in {$(d_jrehl),$(d_jre),$(d_jrez)}/$(basedir)/jre/lib/$(archdir)/*/libjvm.so; do \
++ [ -f $$i ] || continue; \
++ b_id=$$(LC_ALL=C readelf -n $$i | sed -n 's/ *Build ID: *\([0-9a-f][0-9a-f]*\)/\1/p'); \
++ if [ -z "$$b_id" ]; then \
++ id=$$(echo $$i | sed -r 's,debian/[^/]+,$(d_dbg)/usr/lib/debug,'); \
++ echo strip $$i; \
++ mkdir -p $$(dirname $$id); \
++ objcopy --only-keep-debug $$i $$id; \
++ chmod 644 $$id; \
++ strip --remove-section=.comment --remove-section=.note \
++ --strip-debug $$i; \
++ objcopy --add-gnu-debuglink $$id $$i; \
++ else \
++ d=usr/lib/debug/.build-id/$${b_id:0:2}; \
++ f=$${b_id:2}.debug; \
++ mkdir -p $(d_dbg)/$$d; \
++ objcopy --only-keep-debug --compress-debug-sections $$i $(d_dbg)/$$d/$$f; \
++ chmod 644 $(d_dbg)/$$d/$$f; \
++ strip --remove-section=.comment --remove-section=.note $$i; \
++ fi; \
++ done
++endif
++
++ dh_compress -s $(nodemo) $(nojrez) -Xexamples -Xdemo -Xpackage-list
++ dh_fixperms -s $(nodemo) $(nojrez)
++ dh_makeshlibs -p$(p_jrehl) -p$(p_jre)
++ dh_shlibdeps -s $(nodemo) $(nojrez) -L $(p_jrehl) \
++ -l$(shlibdeps_ld_path) \
++ --
++ dh_installdeb -s $(nodemo) $(nojrez)
++ dh_gencontrol -s $(nodemo) $(nojrez) \
++ -- $(control_vars)
++ dh_md5sums -s $(nodemo) $(nojrez)
++ : # FIXME: something seems to hang here ...
++ -ps afx
++ NO_PKG_MANGLE=1 \
++ dh_builddeb -s $(nodemo) $(nojrez) #$(bd_options)
++
++is_release =
++is_release = yes
++hg_project = jdk8u
++hg_tag = jdk8u212-b01
++package_version = $(subst jdk,,$(hg_tag))
++ifneq ($(is_release),yes)
++ package_version := $(subst -,~,$(package_version))
++endif
++hg_url = http://hg.openjdk.java.net/jdk8u/$(hg_project)
++hg_project_aarch64 = jdk8u-shenandoah
++hg_tag_aarch64 = aarch64-shenandoah-jdk8u201-b12
++hg_url_aarch64 = http://hg.openjdk.java.net/aarch64-port/$(hg_project_aarch64)
++hg_project_aarch32 = jdk8u
++hg_tag_aarch32 = jdk8u202-b08-aarch32-190124
++hg_url_aarch32 = http://hg.openjdk.java.net/aarch32-port/$(hg_project_aarch32)
++origdir = ../openjdk-8-$(package_version).orig
++source_date := $(shell dpkg-parsechangelog --show-field=Date)
++fetch-orig:
++ mkdir -p $(origdir)
++ wget -O $(origdir)/root.tar.bz2 $(hg_url)/archive/$(hg_tag).tar.bz2
++ for repo in corba jaxp jaxws langtools hotspot jdk nashorn; do \
++ wget -O $(origdir)/$$repo.tar.bz2 \
++ $(hg_url)/$$repo/archive/$(hg_tag).tar.bz2; \
++ done
++ wget -O $(origdir)/hotspot-aarch64.tar.bz2 \
++ $(hg_url_aarch64)/hotspot/archive/$(hg_tag_aarch64).tar.bz2
++
++ifneq (,$(hotspot_aarch32_archs))
++ wget -O $(origdir)/hotspot-aarch32.tar.bz2 \
++ $(hg_url_aarch32)/hotspot/archive/$(hg_tag_aarch32).tar.bz2
++endif
++
++ wget -O $(origdir)/icedtea-sound.tar.xz \
++ http://icedtea.classpath.org/download/source/icedtea-sound-1.0.1.tar.xz
++
++# wget -O $(origdir)/icedtea-sound.tar.bz2 \
++# http://icedtea.classpath.org/hg/icedtea-sound/archive/tip.tar.bz2
++dfsg-orig:
++ : # remove JSON license from THIRD_PARTY_README; no files shipped
++ set -ex; \
++ for repo in \
++ root corba jaxp jaxws langtools hotspot jdk nashorn hotspot-aarch64 \
++ $(if $(hotspot_aarch32_archs), hotspot-aarch32); \
++ do \
++ [ -f $(origdir)/$$repo.tar.bz2 ] || continue; \
++ mkdir -p $$repo; \
++ tar -xf $(origdir)/$$repo.tar.bz2 --strip-components=1 -C $$repo; \
++ find $$repo -maxdepth 2 -name THIRD_PARTY_README; \
++ for f in $$(find $$repo -maxdepth 2 -name THIRD_PARTY_README); do \
++ awk '/^%% This notice is provided with respect to JSON/ { skip=1 } skip == 0 {print} /^----------/ { skip = 0} ' $$f > $$f.new; \
++ diff -u $$f $$f.new || true; \
++ mv $$f.new $$f; \
++ done; \
++ case $$repo in jdk) \
++ rm -v -rf $$repo/src/share/native/java/util/zip/zlib-*; \
++ find $$repo/src/share/native/sun/awt/image/jpeg \
++ ! -name imageioJPEG.c ! -name jpegdecoder.c ! -name jinclude.h \
++ -type f -print -delete; \
++ rm -v -rf $$repo/src/share/native/sun/awt/giflib; \
++ rm -v -rf $$repo/src/share/native/sun/awt/libpng; \
++ rm -v -f $$repo/src/share/native/sun/java2d/cmm/lcms/cms*.c; \
++ rm -v -f $$repo/src/share/native/sun/java2d/cmm/lcms/lcms2*.h; \
++ rm -v -rf $$repo/src/solaris/native/sun/security/smartcardio/MUSCLE; \
++ esac; \
++ tar --clamp-mtime --mtime="$(source_date)" -cJf $(origdir)/$$repo.tar.xz $$repo; \
++ rm -rf $$repo; \
++ rm -f $(origdir)/$$repo.tar.bz2; \
++ done
++get-orig: fetch-orig dfsg-orig
++
++binary: binary-arch binary-indep
++.PHONY: build build-arch build-indep clean binary-indep binary-arch binary install packaging-files
--- /dev/null
--- /dev/null
++<?xml version="1.0"?>
++<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
++ <mime-type type="application/java-archive">
++ <comment>Java Archive</comment>
++ <glob pattern="*.jar"/>
++ </mime-type>
++
++ <mime-type type="application/x-java-jnlp-file">
++ <comment>Java Web Start application</comment>
++ <glob pattern="*.jnlp"/>
++ </mime-type>
++</mime-info>
--- /dev/null
--- /dev/null
++3.0 (quilt)
--- /dev/null
--- /dev/null
++openjdk-8 source: quilt-build-dep-but-no-series-file
++openjdk-8 source: patch-file-present-but-not-mentioned-in-series
--- /dev/null
--- /dev/null
++/* XPM */
++static char *sun_java[] = {
++/* columns rows colors chars-per-pixel */
++"32 32 156 2",
++" c #34479E",
++". c #4152A3",
++"X c #4153A2",
++"o c #4153A3",
++"O c #4D5EA8",
++"+ c #4D5EA9",
++"@ c #4E5EA9",
++"# c #5A69AD",
++"$ c #5A69AE",
++"% c #5A69AF",
++"& c #5A6AAD",
++"* c #6675B3",
++"= c #6775B2",
++"- c #6775B3",
++"; c #6776B3",
++": c #6775B5",
++"> c #6776B4",
++", c #7480B7",
++"< c #7380B8",
++"1 c #7381B8",
++"2 c #7380BA",
++"3 c #7481B8",
++"4 c #D12124",
++"5 c #D42F31",
++"6 c #D73D3E",
++"7 c #D94A4A",
++"8 c #D94A4B",
++"9 c #DA4A4A",
++"0 c #DA4B4B",
++"q c #DC5957",
++"w c #DC5858",
++"e c #DD5859",
++"r c #DD5959",
++"t c #DF6664",
++"y c #E06664",
++"u c #E27471",
++"i c #E27570",
++"p c #E27472",
++"a c #E37472",
++"s c #E27574",
++"d c #E37474",
++"f c #E5827E",
++"g c #E5837F",
++"h c #818BBD",
++"j c #818CBC",
++"k c #808CBE",
++"l c #818DC0",
++"z c #8D97C2",
++"x c #8D97C3",
++"c c #8D97C5",
++"v c #8E98C5",
++"b c #99A2C7",
++"n c #99A3C7",
++"m c #99A2C8",
++"M c #99A3C8",
++"N c #99A2CA",
++"B c #99A2CB",
++"V c #A6AECD",
++"C c #A5AED2",
++"Z c #A6AED0",
++"A c #B3B9D3",
++"S c #B2B9D4",
++"D c #B3B9D5",
++"F c #B2B9D6",
++"G c #B3BAD5",
++"H c #BFC4D6",
++"J c #BFC5D7",
++"K c #BFC5D8",
++"L c #BFC5D9",
++"P c #BFC5DA",
++"I c #BFC5DB",
++"U c #BFC5DC",
++"Y c #BFC5DD",
++"T c #E58381",
++"R c #E68380",
++"E c #E88F89",
++"W c #E88F8B",
++"Q c #E8908A",
++"! c #EB9D99",
++"~ c #EB9D9A",
++"^ c #EB9D9D",
++"/ c #EDABA2",
++"( c #EEABA6",
++") c #EDACA6",
++"_ c #F0B9B1",
++"` c #F1B9B1",
++"' c #F0B9B6",
++"] c #F3C7BD",
++"[ c #CCD0DA",
++"{ c #CCD1DA",
++"} c #CDD0DA",
++"| c #CCD0DC",
++" . c #CCD0DD",
++".. c #CCD1DD",
++"X. c #CCD0DE",
++"o. c #CCD1DE",
++"O. c #CCD1DF",
++"+. c #D8DBDF",
++"@. c #CCD0E0",
++"#. c #D8DCE1",
++"$. c #D9DCE1",
++"%. c #D9DCE3",
++"&. c #D9DCE4",
++"*. c #D9DCE5",
++"=. c #D9DCE6",
++"-. c #D9DCE7",
++";. c #D9DCE8",
++":. c #F6D5CB",
++">. c #F6D5CD",
++",. c #F6D5D3",
++"<. c #F9E3D7",
++"1. c #F9E3DA",
++"2. c #F9E3DB",
++"3. c #E6E7E7",
++"4. c #E5E7E9",
++"5. c #E5E7EC",
++"6. c #E5E8E8",
++"7. c #E6E8E9",
++"8. c #E6E8EA",
++"9. c #E6E8EB",
++"0. c #E5E8EC",
++"q. c #E6E8EC",
++"w. c #F9E3E1",
++"e. c #F2F3EC",
++"r. c #FCF0E1",
++"t. c #FCF0E3",
++"y. c #FCF1E5",
++"u. c #FCF0E7",
++"i. c #FCF1E6",
++"p. c #FCF1E7",
++"a. c #FCF1E8",
++"s. c #FFFEED",
++"d. c #FFFEEE",
++"f. c #FFFEEF",
++"g. c #F2F3F0",
++"h. c #F2F3F1",
++"j. c #F2F3F2",
++"k. c #F2F3F4",
++"l. c #FFFEF0",
++"z. c #FFFEF1",
++"x. c #FFFEF2",
++"c. c #FFFEF3",
++"v. c #FFFFF3",
++"b. c #FFFFF4",
++"n. c #FFFFF5",
++"m. c #FFFFF6",
++"M. c #FFFFF7",
++"N. c #FFFFF8",
++"B. c #FFFFF9",
++"V. c #FFFFFA",
++"C. c #FFFFFB",
++"Z. c #FFFFFC",
++"A. c #FFFFFD",
++"S. c #FFFFFE",
++"D. c gray100",
++"F. c None",
++/* pixels */
++"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.w.~ F.F.F.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.r F.F.F.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.' q F.F.F.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.M.q u F.F.F.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.F.F.F.F.M.M.! 4 1.F.F.F.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.F.F.F.M.M.f 4 E M.M.F.w.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.F.F.M.i.t 4 i x.1.g u ,.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.F.M.>.7 4 f r.f 5 ! C.F.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.F.1.5 4 / r.7 5 >.M.F.F.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.M.q 4 E d.i 4 >.M.F.F.F.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.M.4 5 d.d.4 6 x.x.F.F.F.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.F.7 7 d.d.4 4 :.M.F.F.F.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.M./ 4 <.x.q 4 7 i.F.F.F.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.F.M.u t x.] 4 4 ) M.F.F.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.F.F.u.7 _ x.E 4 ! M.M.F.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.h.@.4.M.i.u i._ 5 i.M.F.-.N : c @.M.F.F.F.F.F.",
++"F.F.F.F.F.F.k.B O h P x.x.M.x.i.a :.x.M.9.L @.L O c M.F.F.F.F.",
++"F.F.F.F.F.F.> X c n b n n n n h = & X v M.M.M.8. M.F.F.F.F.",
++"F.F.F.F.F.F.F.+...N n n n N N n J ..4.M.M.M.x.M.M. M.F.F.F.F.",
++"F.F.F.F.F.F.F.M.+.O ..x.d.x.d.x.x.3.L 8.M.M.M.x. . X M.F.F.F.F.",
++"F.F.F.F.F.F.F.M.F X = = = = O 8.M.M.h.& S M.F.F.F.F.",
++"F.F.F.F.F.F.F.M.M...z = = = = = j V %.x.F.M.9.% S M.F.F.F.F.F.",
++"F.F.F.F.F.F.F.M.M.4.n d.d.d.d.x.d.x.M.M.M.S X l 5.F.M.F.F.F.F.F.",
++"F.F.F.F.F.F.M.M.x.= O = = = = o = -.-.S h.M.F.M.F.F.F.F.F.F.",
++"F.F.F.F.F.M.-.{ { %., , A x.M.M.M.M.M.F.F.F.F.F.F.F.",
++"F.F.F.F.F O , J e.x.d.d.{ { { +.x.x.x.M.M.M.M.M.=.Y F.F.F.F.F.F.",
++"F.F.F.F. O z H %.d.x.x.d.d.d.d.x.x.x.x...K N O C C.F.F.F.F.F.",
++"F.F.F.F.N O # = = = = = O O L C.F.F.F.F.F.F.",
++"F.F.F.F.M.M.%.V > & O = N =.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.M.M.M.M.x.x.M.M.M.M.M.M.M.M.M.F.F.F.F.F.F.F.F.F.F.",
++"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F."
++};
--- /dev/null
--- /dev/null
++/* XPM */
++static char * dukejre_xpm[] = {
++"32 32 164 2",
++" c None",
++". c #000000",
++"+ c #2D2D2D",
++"@ c #363636",
++"# c #313131",
++"$ c #3E3E3E",
++"% c #3D3D3D",
++"& c #2B2B2B",
++"* c #444444",
++"= c #494949",
++"- c #373737",
++"; c #1C1C1C",
++"> c #545454",
++", c #434343",
++"' c #272727",
++") c #0B0B0B",
++"! c #414141",
++"~ c #5C5C5C",
++"{ c #4F4F4F",
++"] c #141414",
++"^ c #3A3A3A",
++"/ c #585858",
++"( c #403A3A",
++"_ c #32201F",
++": c #090202",
++"< c #4F4E4E",
++"[ c #833D3E",
++"} c #BE3432",
++"| c #D63736",
++"1 c #79201F",
++"2 c #040101",
++"3 c #251313",
++"4 c #212121",
++"5 c #9A5857",
++"6 c #EBB9B9",
++"7 c #E03A38",
++"8 c #CA3430",
++"9 c #862221",
++"0 c #251211",
++"a c #774C35",
++"b c #CC5213",
++"c c #A25151",
++"d c #B23D3C",
++"e c #AC2B29",
++"f c #8F2422",
++"g c #691A19",
++"h c #321D1E",
++"i c #7E3D20",
++"j c #D55A0D",
++"k c #8E3F10",
++"l c #250F0F",
++"m c #5D1615",
++"n c #631817",
++"o c #661918",
++"p c #501313",
++"q c #200909",
++"r c #3D3A39",
++"s c #6D341B",
++"t c #AE4F14",
++"u c #CC5515",
++"v c #44403F",
++"w c #381414",
++"x c #310C0C",
++"y c #220908",
++"z c #1F0B0B",
++"A c #413939",
++"B c #525252",
++"C c #9B6343",
++"D c #D96319",
++"E c #D3A88C",
++"F c #D7D7D7",
++"G c #868383",
++"H c #797777",
++"I c #898989",
++"J c #A3A3A3",
++"K c #DBDBDB",
++"L c #E27626",
++"M c #DE6F21",
++"N c #E9E8E7",
++"O c #EDEDED",
++"P c #F8F8F8",
++"Q c #FFFFFF",
++"R c #EC7A20",
++"S c #E27728",
++"T c #ED7C21",
++"U c #E5E1DE",
++"V c #EEEEEE",
++"W c #F6F6F6",
++"X c #FDFDFD",
++"Y c #B76D3E",
++"Z c #E5711D",
++"` c #F0851E",
++" . c #ED7D24",
++".. c #F18B1D",
++"+. c #C75810",
++"@. c #CC5616",
++"#. c #E36F1D",
++"$. c #F2911A",
++"%. c #FBFBFB",
++"&. c #F9F6F2",
++"*. c #F9AA14",
++"=. c #F08A1D",
++"-. c #D35E13",
++";. c #E16D1C",
++">. c #F49B18",
++",. c #B9B9B9",
++"'. c #FAFAFA",
++"). c #F49818",
++"!. c #E3701D",
++"~. c #A1480F",
++"{. c #E06B1C",
++"]. c #FCFCFC",
++"^. c #E26D1C",
++"/. c #0F0F0F",
++"(. c #DE691B",
++"_. c #F6A016",
++":. c #E97E1C",
++"<. c #F7A117",
++"[. c #EB7A20",
++"}. c #E4701D",
++"|. c #837B77",
++"1. c #A0938A",
++"2. c #717171",
++"3. c #959595",
++"4. c #E1A27A",
++"5. c #DB844B",
++"6. c #D6671F",
++"7. c #D56318",
++"8. c #D6671B",
++"9. c #DB6616",
++"0. c #DE6614",
++"a. c #D96B1C",
++"b. c #D66A21",
++"c. c #D7996D",
++"d. c #C0BFBF",
++"e. c #393939",
++"f. c #686868",
++"g. c #8F8F8F",
++"h. c #D3D3D3",
++"i. c #D1D1D1",
++"j. c #CFCFCF",
++"k. c #DCDCDC",
++"l. c #D8D8D8",
++"m. c #C0C0C0",
++"n. c #C3C3C3",
++"o. c #333333",
++"p. c #696969",
++"q. c #606060",
++"r. c #E6E6E6",
++"s. c #A0A0A0",
++"t. c #8A8A8A",
++"u. c #5F5F5F",
++"v. c #8C8C8C",
++"w. c #B6B6B6",
++"x. c #BDBDBD",
++"y. c #262626",
++"z. c #7C7C7C",
++"A. c #C2C2C2",
++"B. c #C1C1C1",
++"C. c #B5B5B5",
++"D. c #6E6E6E",
++"E. c #868686",
++"F. c #ABABAB",
++"G. c #292929",
++" ",
++" . . ",
++" . . . . ",
++" . . . . ",
++" + . . . . . . ",
++" @ # . . . . . . . ",
++" $ % & . . . . . . ",
++" * = - ; . . . . . ",
++" * > , ' ) . . . . . . ",
++" ! ~ { # ] . . . . ",
++" ^ / / ( _ : . . . ",
++" # < [ } | 1 2 . ",
++" 3 4 5 6 7 8 9 0 a b . ",
++" 3 3 c d e f g h i j . ",
++" k l m n o p q r s j . ",
++" t u v w x y z A B C j . ",
++" $ . D E F G H I J K j L . ",
++" $ . M j N O P Q Q Q j R j ",
++" $ $ . S T j U V W X j T T j Y ",
++" $ . . Z ` T j j j j j ...T j +. ",
++" . . @.#.$.%.%.%.%.%.%.&.*.=.j -. ",
++" . . @.;.>.%.%.,.. '.%.%.*.).!.j ~. ",
++" . . @.{.*.%.%.%.. ].].%.*.*.^.j j ",
++" /.. j (.*.%.'.%.. '.%.%.*._.^.j j ",
++" . . . j :.%.'.%.%.'.'.%.<.[.}.j |. ",
++" . . # . . j j j T T T T T T T j 1.2. ",
++" . ^ 3.O 4.5.6.7.8.9.0.a.b.c.d.e.f. ",
++" ] . g.O h.i.j.j.h.h.h.k.l.m.n.o.p. ",
++" q.O O r.s.t.$ $ $ u.v.3.w.x.y.u. ",
++" z.A.B.C.D.$ $ $ $ u.E.F.& u. ",
++" # F.F.D.$ $ $ $ ' G.e.u. ",
++" $ $ $ $ $ $ $ "};
--- /dev/null
--- /dev/null
++# uncomment to set the default look and feel to GTK
++#swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
--- /dev/null
--- /dev/null
++Tests: hotspot, langtools
++Depends: @, jtreg, testng, gcc
++Restrictions: allow-stderr, skippable
++
++Tests: jdk
++Depends: @, jtreg, testng, gcc, xfwm4, xvfb, dbus-x11
++Restrictions: allow-stderr, skippable
--- /dev/null
--- /dev/null
++#!/bin/bash
++set -o errexit
++set -o errtrace
++set -o pipefail
++set -o nounset
++
++[ -d hotspot/test ] || tar xf hotspot.tar.xz hotspot/test/
++
++debian/tests/jtreg-autopkgtest.sh -dir:hotspot/test compiler gc runtime sanity serviceability
++debian/tests/jtdiff-autopkgtest.sh hotspot
--- /dev/null
--- /dev/null
++#!/bin/bash
++set -o errexit
++set -o errtrace
++set -o pipefail
++set -o nounset
++
++[ -d jdk/test/ ] || tar xf jdk.tar.xz jdk/test/
++
++cleanup() {
++ pid="$(jobs -p)"
++ [ -n "$pid" ] && pkill -P ${pid}
++ pkill -9 -P $$
++}
++
++for sig in INT QUIT HUP TERM; do trap "cleanup; trap - $sig EXIT; kill -s $sig "'"$$"' "$sig"; done
++trap cleanup EXIT
++
++export HOME="$(pwd)/jdk/test/"
++export XAUTHORITY="${HOME}/.Xauthority"
++export DISPLAY=:10
++
++debian/tests/start-xvfb.sh 10 &
++sleep 3
++
++debian/tests/jtreg-autopkgtest.sh -exclude:jdk/test/ProblemList.txt -dir:jdk/test \
++ :jdk_core :jdk_svc :jdk_beans :jdk_imageio :jdk_sound :jdk_sctp \
++ javax/accessibility com/sun/java/swing javax/print sun/pisces com/sun/awt
++
++debian/tests/jtdiff-autopkgtest.sh jdk
--- /dev/null
--- /dev/null
++#!/bin/bash
++set -o errexit
++set -o errtrace
++set -o pipefail
++set -o nounset
++
++testsuite=$1
++shift
++
++if [ -z "${AUTOPKGTEST_TMP+x}" ] || [ -z "${AUTOPKGTEST_ARTIFACTS+x}" ]; then
++ echo "Environment variables AUTOPKGTEST_TMP and AUTOPKGTEST_ARTIFACTS must be set" >&2
++ exit 1
++fi
++
++host_arch=${DEB_HOST_ARCH:-$(dpkg --print-architecture)}
++
++export JTREG_HOME=/usr/share/java
++export JT_JAVA="${JT_JAVA:-/usr/lib/jvm/java-8-openjdk-${host_arch}}"
++
++vmname=${VMNAME:-hotspot}
++
++jt_report_tb="/usr/share/doc/openjdk-8-jdk/test-${host_arch}/jtreport-${vmname}.tar.gz"
++build_report_dir="${AUTOPKGTEST_TMP}/jtreg-test-output/${testsuite}/JTreport"
++
++if [ ! -f "${jt_report_tb}" ]; then
++ echo "Unable to compare jtreg results: no build jtreport found for ${vmname}/${host_arch}."
++ echo "Reason: '${jt_report_tb}' does not exist."
++ exit 77
++fi
++
++# extract testsuite results from original openjdk build
++[ -d "${build_report_dir}" ] || \
++ tar -xf "${jt_report_tb}" -C "${AUTOPKGTEST_TMP}"
++
++jtdiff -o "${AUTOPKGTEST_ARTIFACTS}/jtdiff.html" "${build_report_dir}" "${AUTOPKGTEST_ARTIFACTS}/JTreport" || true
++jtdiff "${build_report_dir}" "${AUTOPKGTEST_ARTIFACTS}/JTreport" | tee "${AUTOPKGTEST_ARTIFACTS}/jtdiff.txt"
--- /dev/null
--- /dev/null
++#!/bin/bash
++set -o errexit
++set -o errtrace
++set -o pipefail
++set -o nounset
++
++if [ -z "${AUTOPKGTEST_TMP+x}" ] || [ -z "${AUTOPKGTEST_ARTIFACTS+x}" ]; then
++ echo "Environment variables AUTOPKGTEST_TMP and AUTOPKGTEST_ARTIFACTS must be set" >&2
++ exit 1
++fi
++
++host_arch=${DEB_HOST_ARCH:-$(dpkg --print-architecture)}
++
++export JTREG_HOME=/usr/share/java
++export JT_JAVA="${JT_JAVA:-/usr/lib/jvm/java-8-openjdk-${host_arch}}"
++JDK_DIR="${JDK_DIR:-$JT_JAVA}"
++
++jtreg_version="$(dpkg-query -W jtreg | cut -f2)"
++
++# set additional jtreg options
++jt_options="${JTREG_OPTIONS:-}"
++if [[ "armel" == *"${host_arch}"* ]]; then
++ jt_options+=" -Xmx256M"
++fi
++if dpkg --compare-versions ${jtreg_version} ge 4.2; then
++ jt_options+=" -conc:auto"
++fi
++
++# check java binary
++if [ ! -x "${JDK_DIR}/bin/java" ]; then
++ echo "Error: '${JDK_DIR}/bin/java' is not an executable." >&2
++ exit 1
++fi
++
++# restrict the tests to a few archs (set from debian/rules)
++if ! echo "${host_arch}" | grep -E "^($(echo @jtreg_archs@ | tr ' ' '|'))$"; then
++ echo "Error: ${host_arch} is not on the jtreg_archs list, ignoring it."
++ exit 77
++fi
++
++jtreg_processes() {
++ ps x -ww -o pid,ppid,args \
++ | awk '$2 == 1 && $3 ~ /^\/scratch/' \
++ | sed "s,${JDK_DIR},<sdkimg>,g;s,$(pwd),<pwd>,g"
++}
++
++jtreg_pids() {
++ ps x --no-headers -ww -o pid,ppid,args \
++ | awk "\$2 == 1 && \$3 ~ /^${JDK_DIR//\//\\/}/ {print \$1}"
++}
++
++cleanup() {
++ # kill testsuite processes still hanging
++ pids="$(jtreg_pids)"
++ if [ -n "$pids" ]; then
++ echo "[$0] killing processes..."
++ jtreg_processes
++ kill -1 $pids
++ sleep 2
++ pids="$(jtreg_pids)"
++ if [ -n "$pids" ]; then
++ echo "[$0] try harder..."
++ jtreg_processes
++ kill -9 $pids
++ sleep 2
++ fi
++ else
++ echo "[$0] nothing to cleanup"
++ fi
++ pids="$(jtreg_pids)"
++ if [ -n "$pids" ]; then
++ echo "[$0] leftover processes..."
++ $(jtreg_processes)
++ fi
++}
++
++trap "cleanup" EXIT INT TERM ERR
++
++jtreg ${jt_options} \
++ -verbose:summary \
++ -automatic \
++ -retain:none \
++ -ignore:quiet \
++ -agentvm \
++ -timeout:5 \
++ -workDir:"${AUTOPKGTEST_ARTIFACTS}/JTwork" \
++ -reportDir:"${AUTOPKGTEST_ARTIFACTS}/JTreport" \
++ -jdk:${JDK_DIR} \
++ $@
--- /dev/null
--- /dev/null
++#!/bin/bash
++set -o errexit
++set -o errtrace
++set -o pipefail
++set -o nounset
++
++if [ -z "${AUTOPKGTEST_TMP+x}" ] || [ -z "${AUTOPKGTEST_ARTIFACTS+x}" ]; then
++ echo "Environment variables AUTOPKGTEST_TMP and AUTOPKGTEST_ARTIFACTS must be set" >&2
++ exit 1
++fi
++
++host_arch=${DEB_HOST_ARCH:-$(dpkg --print-architecture)}
++
++export JTREG_HOME=/usr/share/java
++export JT_JAVA="${JT_JAVA:-/usr/lib/jvm/java-8-openjdk-${host_arch}}"
++JDK_DIR="${JDK_DIR:-$JT_JAVA}"
++
++jtreg_version="$(dpkg-query -W jtreg | cut -f2)"
++
++# set additional jtreg options
++jt_options="${JTREG_OPTIONS:-}"
++if [[ "armel" == *"${host_arch}"* ]]; then
++ jt_options+=" -Xmx256M"
++fi
++if dpkg --compare-versions ${jtreg_version} ge 4.2; then
++ jt_options+=" -conc:auto"
++fi
++
++# check java binary
++if [ ! -x "${JDK_DIR}/bin/java" ]; then
++ echo "Error: '${JDK_DIR}/bin/java' is not an executable." >&2
++ exit 1
++fi
++
++# restrict the tests to a few archs (set from debian/rules)
++if ! echo "${host_arch}" | grep -E "^($(echo amd64 i386 arm64 ppc64 ppc64el sparc64 armhf kfreebsd-amd64 kfreebsd-i386 alpha arm64 armel armhf ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390x sh4 x32 | tr ' ' '|'))$"; then
++ echo "Error: ${host_arch} is not on the jtreg_archs list, ignoring it."
++ exit 77
++fi
++
++jtreg_processes() {
++ ps x -ww -o pid,ppid,args \
++ | awk '$2 == 1 && $3 ~ /^\/scratch/' \
++ | sed "s,${JDK_DIR},<sdkimg>,g;s,$(pwd),<pwd>,g"
++}
++
++jtreg_pids() {
++ ps x --no-headers -ww -o pid,ppid,args \
++ | awk "\$2 == 1 && \$3 ~ /^${JDK_DIR//\//\\/}/ {print \$1}"
++}
++
++cleanup() {
++ # kill testsuite processes still hanging
++ pids="$(jtreg_pids)"
++ if [ -n "$pids" ]; then
++ echo "[$0] killing processes..."
++ jtreg_processes
++ kill -1 $pids
++ sleep 2
++ pids="$(jtreg_pids)"
++ if [ -n "$pids" ]; then
++ echo "[$0] try harder..."
++ jtreg_processes
++ kill -9 $pids
++ sleep 2
++ fi
++ else
++ echo "[$0] nothing to cleanup"
++ fi
++ pids="$(jtreg_pids)"
++ if [ -n "$pids" ]; then
++ echo "[$0] leftover processes..."
++ $(jtreg_processes)
++ fi
++}
++
++trap "cleanup" EXIT INT TERM ERR
++
++jtreg ${jt_options} \
++ -verbose:summary \
++ -automatic \
++ -retain:none \
++ -ignore:quiet \
++ -agentvm \
++ -timeout:5 \
++ -workDir:"${AUTOPKGTEST_ARTIFACTS}/JTwork" \
++ -reportDir:"${AUTOPKGTEST_ARTIFACTS}/JTreport" \
++ -jdk:${JDK_DIR} \
++ $@
--- /dev/null
--- /dev/null
++#!/bin/bash
++set -o errexit
++set -o errtrace
++set -o pipefail
++set -o nounset
++
++[ -d langtools/test ] || tar xf langtools.tar.xz langtools/test/
++
++debian/tests/jtreg-autopkgtest.sh -dir:langtools/test com tools lib
++debian/tests/jtdiff-autopkgtest.sh langtools
--- /dev/null
--- /dev/null
++#!/bin/bash
++set -o errexit
++set -o errtrace
++set -o pipefail
++set -o nounset
++
++if [ -z "${AUTOPKGTEST_TMP+x}" ] || [ -z "${AUTOPKGTEST_ARTIFACTS+x}" ]; then
++ echo "Environment variables AUTOPKGTEST_TMP and AUTOPKGTEST_ARTIFACTS must be set" >&2
++ exit 1
++fi
++
++export HOME="${HOME:-${AUTOPKGTEST_TMP}}"
++export XAUTHORITY="${HOME}/.Xauthority"
++
++exec xvfb-run --server-num=${1:-10} \
++ --error-file="${AUTOPKGTEST_ARTIFACTS}/xvfb-run.log" \
++ --auth-file=${XAUTHORITY} \
++ --server-args="-fbdir ${AUTOPKGTEST_TMP} -pixdepths 8 16 24 32 -extension GLX -screen 0 1600x900x24" \
++ xfwm4
--- /dev/null
--- /dev/null
++#!/bin/bash
++
++tarballs=(corba.tar.gz hotspot.tar.gz jaxp.tar.gz jaxws.tar.gz jdk-dfsg.tar.gz langtools-dfsg.tar.gz openjdk.tar.gz)
++varhgchange=(CORBA_CHANGESET HOTSPOT_CHANGESET JAXP_CHANGESET JAXWS_CHANGESET JDK_CHANGESET LANGTOOLS_CHANGESET OPENJDK_CHANGESET)
++tarballdir=.
++
++makefile1=Makefile.am
++
++function update_var() {
++ varname=$1
++ newsum=$2
++
++ echo "$varname: ${newsum}"
++ if [ -f $makefile1 ]; then
++ sed -i "s/\(^$varname\)\(..*$\)/\1 = ${newsum}/" $makefile1
++ fi
++}
++
++function actual_tar_rev() {
++ tar=$1
++
++ revision=$(tar tf $tar | head -1 | sed 's,/.*,,' | sed 's,.*-,,')
++}
++
++# For all modules
++for (( i = 0 ; i < ${#varhgchange[@]} ; i++ )); do
++ actual_tar_rev $tarballdir/${tarballs[$i]}
++ update_var ${varhgchange[$i]} $revision
++done
--- /dev/null
--- /dev/null
++#!/bin/bash
++
++tarballs=(jdk-dfsg.tar.gz langtools-dfsg.tar.gz)
++varshasum=(JDK_SHA256SUM LANGTOOLS_SHA256SUM)
++tarballdir=.
++
++makefile1=Makefile.am
++
++function update_var() {
++ varname=$1
++ newsum=$2
++
++ echo "$varname: ${newsum}"
++ if [ -f $makefile1 ]; then
++ sed -i "s/\(^$varname\)\(..*$\)/\1 = ${newsum}/" $makefile1
++ fi
++}
++
++# For all modules
++for (( i = 0 ; i < ${#tarballs[@]} ; i++ )); do
++ newsum=$(sha256sum $tarballdir/${tarballs[$i]} | cut -f 1 -d ' ')
++ update_var ${varshasum[$i]} $newsum
++done