From: Moritz Muehlenhoff Date: Mon, 18 Mar 2019 23:06:47 +0000 (+0000) Subject: openjdk-8 (8u212-b01-1~deb9u1) stretch-security; urgency=medium X-Git-Tag: archive/raspbian/8u212-b01-1_deb9u1+rpi1^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=1b19deb5514447f855f26edb8c22992a76949ca3;p=openjdk-8.git openjdk-8 (8u212-b01-1~deb9u1) stretch-security; urgency=medium * Rebuild for stretch [dgit import unpatched openjdk-8 8u212-b01-1~deb9u1] --- 1b19deb5514447f855f26edb8c22992a76949ca3 diff --cc debian/JAVA_HOME index 0000000,0000000..876e989 new file mode 100644 --- /dev/null +++ b/debian/JAVA_HOME @@@ -1,0 -1,0 +1,13 @@@ ++ 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. diff --cc debian/JB-archive.applications.in index 0000000,0000000..7f20fd5 new file mode 100644 --- /dev/null +++ b/debian/JB-archive.applications.in @@@ -1,0 -1,0 +1,6 @@@ ++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 diff --cc debian/JB-archive.keys.in index 0000000,0000000..743e3c8 new file mode 100644 --- /dev/null +++ b/debian/JB-archive.keys.in @@@ -1,0 -1,0 +1,18 @@@ ++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 diff --cc debian/JB-archive.mime.in index 0000000,0000000..e354ead new file mode 100644 --- /dev/null +++ b/debian/JB-archive.mime.in @@@ -1,0 -1,0 +1,6 @@@ ++application/java-archive ++ ext: jar ++application/x-java-archive ++ ext: jar ++application/x-jar ++ ext: jar diff --cc debian/JB-dbg.overrides.in index 0000000,0000000..04f696f new file mode 100644 --- /dev/null +++ b/debian/JB-dbg.overrides.in @@@ -1,0 -1,0 +1,3 @@@ ++# 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 diff --cc debian/JB-demo.menu.in index 0000000,0000000..58aec29 new file mode 100644 --- /dev/null +++ b/debian/JB-demo.menu.in @@@ -1,0 -1,0 +1,55 @@@ ++?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" diff --cc debian/JB-demo.overrides.in index 0000000,0000000..e148b99 new file mode 100644 --- /dev/null +++ b/debian/JB-demo.overrides.in @@@ -1,0 -1,0 +1,8 @@@ ++# 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 diff --cc debian/JB-doc.doc-base.in index 0000000,0000000..619d9ae new file mode 100644 --- /dev/null +++ b/debian/JB-doc.doc-base.in @@@ -1,0 -1,0 +1,11 @@@ ++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 diff --cc debian/JB-fonts.defoma-hints.in index 0000000,0000000..80212e2 new file mode 100644 --- /dev/null +++ b/debian/JB-fonts.defoma-hints.in @@@ -1,0 -1,0 +1,187 @@@ ++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 diff --cc debian/JB-java.desktop.in index 0000000,0000000..eec5e5c new file mode 100644 --- /dev/null +++ b/debian/JB-java.desktop.in @@@ -1,0 -1,0 +1,12 @@@ ++[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 diff --cc debian/JB-jconsole.desktop.in index 0000000,0000000..8a87820 new file mode 100644 --- /dev/null +++ b/debian/JB-jconsole.desktop.in @@@ -1,0 -1,0 +1,11 @@@ ++[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; diff --cc debian/JB-jdk-headless.postinst.in index 0000000,0000000..0e1ef5f new file mode 100644 --- /dev/null +++ b/debian/JB-jdk-headless.postinst.in @@@ -1,0 -1,0 +1,75 @@@ ++#!/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 diff --cc debian/JB-jdk-headless.preinst.in index 0000000,0000000..01698fc new file mode 100644 --- /dev/null +++ b/debian/JB-jdk-headless.preinst.in @@@ -1,0 -1,0 +1,23 @@@ ++#!/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 diff --cc debian/JB-jdk-headless.prerm.in index 0000000,0000000..80bf503 new file mode 100644 --- /dev/null +++ b/debian/JB-jdk-headless.prerm.in @@@ -1,0 -1,0 +1,15 @@@ ++#!/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# diff --cc debian/JB-jdk.menu.in index 0000000,0000000..14f11ec new file mode 100644 --- /dev/null +++ b/debian/JB-jdk.menu.in @@@ -1,0 -1,0 +1,7 @@@ ++?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" diff --cc debian/JB-jdk.postinst.in index 0000000,0000000..bdffbe3 new file mode 100644 --- /dev/null +++ b/debian/JB-jdk.postinst.in @@@ -1,0 -1,0 +1,75 @@@ ++#!/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 diff --cc debian/JB-jdk.preinst.in index 0000000,0000000..3d693f9 new file mode 100644 --- /dev/null +++ b/debian/JB-jdk.preinst.in @@@ -1,0 -1,0 +1,23 @@@ ++#!/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 diff --cc debian/JB-jdk.prerm.in index 0000000,0000000..f512195 new file mode 100644 --- /dev/null +++ b/debian/JB-jdk.prerm.in @@@ -1,0 -1,0 +1,15 @@@ ++#!/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# diff --cc debian/JB-jre-headless.overrides.in index 0000000,0000000..373a242 new file mode 100644 --- /dev/null +++ b/debian/JB-jre-headless.overrides.in @@@ -1,0 -1,0 +1,11 @@@ ++# 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 diff --cc debian/JB-jre-headless.postinst.in index 0000000,0000000..1f86eeb new file mode 100644 --- /dev/null +++ b/debian/JB-jre-headless.postinst.in @@@ -1,0 -1,0 +1,148 @@@ ++#!/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 diff --cc debian/JB-jre-headless.postrm.in index 0000000,0000000..5c8811f new file mode 100644 --- /dev/null +++ b/debian/JB-jre-headless.postrm.in @@@ -1,0 -1,0 +1,21 @@@ ++#!/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# diff --cc debian/JB-jre-headless.preinst.in index 0000000,0000000..4afe9d5 new file mode 100644 --- /dev/null +++ b/debian/JB-jre-headless.preinst.in @@@ -1,0 -1,0 +1,35 @@@ ++#! /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# diff --cc debian/JB-jre-headless.prerm.in index 0000000,0000000..d8e24ce new file mode 100644 --- /dev/null +++ b/debian/JB-jre-headless.prerm.in @@@ -1,0 -1,0 +1,27 @@@ ++#!/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# diff --cc debian/JB-jre-zero.overrides.in index 0000000,0000000..1616f86 new file mode 100644 --- /dev/null +++ b/debian/JB-jre-zero.overrides.in @@@ -1,0 -1,0 +1,2 @@@ ++# Strip libjvm.so with --strip-debug instead of --strip-unneeded. LP: #574997. ++@basename@-jre-zero binary: unstripped-binary-or-object diff --cc debian/JB-jre.menu.in index 0000000,0000000..024b63f new file mode 100644 --- /dev/null +++ b/debian/JB-jre.menu.in @@@ -1,0 -1,0 +1,7 @@@ ++?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" diff --cc debian/JB-jre.overrides.in index 0000000,0000000..c7cb389 new file mode 100644 --- /dev/null +++ b/debian/JB-jre.overrides.in @@@ -1,0 -1,0 +1,2 @@@ ++# these are in the -jre-headless package, -jre depends on it ++@basename@-jre binary: desktop-command-not-in-package diff --cc debian/JB-jre.postinst.in index 0000000,0000000..e1a27b7 new file mode 100644 --- /dev/null +++ b/debian/JB-jre.postinst.in @@@ -1,0 -1,0 +1,76 @@@ ++#!/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 diff --cc debian/JB-jre.preinst.in index 0000000,0000000..3c64bf7 new file mode 100644 --- /dev/null +++ b/debian/JB-jre.preinst.in @@@ -1,0 -1,0 +1,27 @@@ ++#! /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 diff --cc debian/JB-jre.prerm.in index 0000000,0000000..f32dbe6 new file mode 100644 --- /dev/null +++ b/debian/JB-jre.prerm.in @@@ -1,0 -1,0 +1,14 @@@ ++#!/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# diff --cc debian/JB-policytool.desktop.in index 0000000,0000000..ac29c47 new file mode 100644 --- /dev/null +++ b/debian/JB-policytool.desktop.in @@@ -1,0 -1,0 +1,13 @@@ ++[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; diff --cc debian/README.Debian index 0000000,0000000..ee04a50 new file mode 100644 --- /dev/null +++ b/debian/README.Debian @@@ -1,0 -1,0 +1,75 @@@ ++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 ++ ++ -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 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 < Sun, 03 May 2009 13:58:10 +0200 ++ -- Torsten Werner Wed, 02 Apr 2008 11:46:53 +0200 diff --cc debian/README.alternatives.in index 0000000,0000000..19d46fb new file mode 100644 --- /dev/null +++ b/debian/README.alternatives.in @@@ -1,0 -1,0 +1,35 @@@ ++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 alternatives: ++ ++ update-java-alternatives --jre --set ++ ++- Set all runtime tools (headless only) to point to the ++ alternatives: ++ ++ update-java-alternatives --jre-headless --set ++ ++- Set all runtime and development tools to point to the ++ alternatives: ++ ++ update-java-alternatives --set ++ ++- Set all runtime and development tools to auto mode: ++ ++ update-java-alternatives --auto diff --cc debian/README.source index 0000000,0000000..87678eb new file mode 100644 --- /dev/null +++ b/debian/README.source @@@ -1,0 -1,0 +1,76 @@@ ++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 . ++- 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 diff --cc debian/TODO index 0000000,0000000..f5c24bd new file mode 100644 --- /dev/null +++ b/debian/TODO @@@ -1,0 -1,0 +1,2 @@@ ++ - PR2446: Support system libsctp ++ - support system libfontconfig diff --cc debian/accessibility-atk.properties.disabled index 0000000,0000000..c1bdc48 new file mode 100644 --- /dev/null +++ b/debian/accessibility-atk.properties.disabled @@@ -1,0 -1,0 +1,10 @@@ ++# ++# 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 ++ diff --cc debian/accessibility-atk.properties.enabled index 0000000,0000000..e1129f8 new file mode 100644 --- /dev/null +++ b/debian/accessibility-atk.properties.enabled @@@ -1,0 -1,0 +1,9 @@@ ++# ++# 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 ++ diff --cc debian/accessibility.properties index 0000000,0000000..e009589 new file mode 100644 --- /dev/null +++ b/debian/accessibility.properties @@@ -1,0 -1,0 +1,9 @@@ ++# ++# 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 ++ diff --cc debian/apport-hook.py index 0000000,0000000..f409a35 new file mode 100644 --- /dev/null +++ b/debian/apport-hook.py @@@ -1,0 -1,0 +1,46 @@@ ++'''Apport package hook for openjdk-8 packages. ++ ++Copyright (C) 2017 Canonical Ltd. ++Author: Tiago Stürmer Daitx ''' ++ ++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 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." diff --cc debian/buildwatch.sh index 0000000,0000000..1747dae new file mode 100644 --- /dev/null +++ b/debian/buildwatch.sh @@@ -1,0 -1,0 +1,58 @@@ ++#! /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 diff --cc debian/changelog index 0000000,0000000..9141b74 new file mode 100644 --- /dev/null +++ b/debian/changelog @@@ -1,0 -1,0 +1,4834 @@@ ++openjdk-8 (8u212-b01-1~deb9u1) stretch-security; urgency=medium ++ ++ * Rebuild for stretch ++ ++ -- Moritz Muehlenhoff 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Wed, 08 Feb 2017 07:24:13 +0100 ++ ++openjdk-8 (8u121-b13-2) unstable; urgency=medium ++ ++ * Fix libjpeg dependency. Closes: #852378. ++ ++ -- Matthias Klose 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 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 Wed, 02 Nov 2016 20:05:41 +0100 ++ ++openjdk-8 (8u111-b14-2) unstable; urgency=high ++ ++ * Apply the kfreebsd patches conditionally. ++ ++ -- Matthias Klose 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 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 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 Mon, 01 Aug 2016 16:31:18 +0200 ++ ++openjdk-8 (8u102-b14-2) unstable; urgency=medium ++ ++ * Update AArch64 and KFreeBSD patches. ++ ++ -- Matthias Klose 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' method calls ++ super. 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 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 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 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 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 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 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 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 Wed, 13 Apr 2016 19:17:37 +0200 ++ ++openjdk-8 (8u77-b03-3ubuntu2) xenial; urgency=medium ++ ++ * Fix stripping the libjvm.so files. ++ ++ -- Matthias Klose Wed, 06 Apr 2016 13:41:39 +0200 ++ ++openjdk-8 (8u77-b03-3ubuntu1) xenial; urgency=medium ++ ++ * Regenerate the control file. ++ ++ -- Matthias Klose 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 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 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 . ++ * 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 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 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 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 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 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 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 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 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 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 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 Wed, 21 Oct 2015 22:48:28 +0200 ++ ++openjdk-8 (8u66-b01-6) unstable; urgency=medium ++ ++ * Fix pulseaudio build on KFreeBSD. ++ ++ -- Matthias Klose 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 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 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 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 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 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 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 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 Sun, 17 May 2015 16:13:11 +0200 ++ ++openjdk-8 (8u45-b14-2) unstable; urgency=medium ++ ++ * Fix JamVM with 8u45. Closes: #766284. ++ ++ -- Matthias Klose 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 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 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 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 Mon, 26 Jan 2015 16:59:37 +0100 ++ ++openjdk-8 (8u40~b21-1) unstable; urgency=medium ++ ++ * Update to 8u40-b21. ++ ++ -- Matthias Klose Thu, 15 Jan 2015 12:14:18 +0100 ++ ++openjdk-8 (8u40~b10-1) unstable; urgency=medium ++ ++ * Fix libjpeg runtime dependency. ++ ++ -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Wed, 09 Oct 2013 16:29:15 +0200 ++ ++openjdk-7 (7u25-2.3.12-4ubuntu1) saucy; urgency=low ++ ++ * Regenerate the control file. ++ ++ -- Matthias Klose 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 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 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 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 Fri, 02 Aug 2013 15:55:01 +0200 ++ ++openjdk-7 (7u25-2.3.10-2ubuntu1) saucy; urgency=low ++ ++ * Regenerate the control file. ++ ++ -- Matthias Klose 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 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 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 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 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 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 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 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 Mon, 01 Apr 2013 00:39:58 +0200 ++ ++openjdk-7 (7u17-2.3.8-1ubuntu1) raring; urgency=low ++ ++ * Regenerate the control file. ++ ++ -- Matthias Klose 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 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 Wed, 06 Mar 2013 14:12:03 -0600 ++ ++openjdk-7 (7u15-2.3.7-1ubuntu1) raring; urgency=low ++ ++ * Regenerate the control file. ++ ++ -- Matthias Klose 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 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 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 Tue, 15 Jan 2013 23:38:48 +0100 ++ ++openjdk-7 (7u9-2.3.3-1) experimental; urgency=low ++ ++ * Upload to experimental. ++ ++ -- Matthias Klose 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 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 Wed, 19 Sep 2012 17:42:39 +0200 ++ ++openjdk-7 (7u7-2.3.2a-1) experimental; urgency=low ++ ++ * Upload to experimental. ++ ++ -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 . ++ * 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 Sun, 17 Jul 2011 16:08:51 +0200 ++ ++openjdk-7 (7~b143-2.0~pre1-2) experimental; urgency=low ++ ++ * Upload to experimental. ++ ++ -- Matthias Klose 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 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 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 Sun, 29 May 2011 12:37:03 +0200 ++ ++openjdk-7 (7~b136-2.0~pre1-1ubuntu1) oneiric; urgency=low ++ ++ * Upload to oneiric. ++ ++ -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 Mon, 24 Jan 2011 00:18:38 +0100 ++ ++openjdk-7 (7b106~pre1-0lucid2) lucid; urgency=low ++ ++ * Build for lucid. ++ ++ -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 Tue, 05 Apr 2011 12:20:36 +0200 ++ ++openjdk-6 (6b22-1.10.1~pre1-1) experimental; urgency=low ++ ++ * Upload to experimental. ++ ++ -- Matthias Klose 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 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 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 Sat, 05 Mar 2011 16:13:40 +0100 ++ ++openjdk-6 (6b22-1.10-1) experimental; urgency=low ++ ++ * Upload to experimental. ++ ++ -- Matthias Klose 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 Fri, 04 Mar 2011 15:32:50 +0100 ++ ++openjdk-6 (6b22-1.10-0ubuntu1) natty; urgency=low ++ ++ * IcedTea6 1.10 release. ++ ++ -- Matthias Klose 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 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 Fri, 18 Feb 2011 15:55:41 +0100 ++ ++openjdk-6 (6b21~pre1-1) experimental; urgency=low ++ ++ * Upload to experimental. ++ ++ -- Matthias Klose Sat, 22 Jan 2011 15:34:21 +0100 ++ ++openjdk-6 (6b21~pre1-0ubuntu1) natty; urgency=low ++ ++ * Update to 6b21. ++ ++ -- Matthias Klose 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 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 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 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 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 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 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 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 Wed, 20 Oct 2010 17:45:09 +0200 ++ ++openjdk-6 (6b20-1.10~pre1-0ubuntu2) natty; urgency=low ++ ++ * Build with hotspot 19. ++ ++ -- Matthias Klose 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 Wed, 13 Oct 2010 08:36:44 +0200 ++ ++openjdk-6 (6b20-1.9.2-1) experimental; urgency=low ++ ++ * Upload to experimental. ++ ++ -- Matthias Klose 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 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 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 Mon, 18 Oct 2010 16:07:48 +0200 ++ ++openjdk-6 (6b20-1.9.1-1) experimental; urgency=low ++ ++ * Upload to experimental. ++ ++ -- Matthias Klose 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 Tue, 12 Oct 2010 12:13:40 +0200 ++ ++openjdk-6 (6b20-1.9-1) experimental; urgency=low ++ ++ * Upload to experimental. ++ ++ -- Matthias Klose Tue, 07 Sep 2010 21:19:21 +0200 ++ ++openjdk-6 (6b20-1.9-0ubuntu1) maverick; urgency=low ++ ++ * IcedTea6 1.9 release. ++ ++ -- Matthias Klose 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 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 Thu, 29 Jul 2010 00:10:53 +0200 ++ ++openjdk-6 (6b20~pre1-2) experimental; urgency=low ++ ++ * Upload to experimental. ++ ++ -- Matthias Klose 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 Thu, 15 Jul 2010 12:40:10 +0200 ++ ++openjdk-6 (6b20~pre1-1) experimental; urgency=low ++ ++ * Upload to experimental. ++ ++ -- Matthias Klose Mon, 28 Jun 2010 00:50:58 +0200 ++ ++openjdk-6 (6b20~pre1-0ubuntu2) maverick; urgency=low ++ ++ * Shark & CACAO build fixes. ++ ++ -- Matthias Klose Fri, 25 Jun 2010 02:27:10 +0200 ++ ++openjdk-6 (6b20~pre1-0ubuntu1) maverick; urgency=low ++ ++ * Update to 6b20 code drop. ++ ++ -- Matthias Klose 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 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 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 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 Sun, 02 May 2010 12:03:01 +0200 ++ ++openjdk-6 (6b18-1.8-2ubuntu1) maverick; urgency=low ++ ++ * Upload to maverick. ++ ++ -- Matthias Klose 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 Sat, 01 May 2010 12:35:19 +0200 ++ ++openjdk-6 (6b18-1.8-1) unstable; urgency=low ++ ++ * Upload to unstable. ++ ++ -- Matthias Klose 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 /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 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 Wed, 31 Mar 2010 22:21:49 +0200 ++ ++openjdk-6 (6b18~pre4-1) unstable; urgency=high ++ ++ * Upload to unstable. ++ ++ -- Matthias Klose 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 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 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 Sun, 21 Mar 2010 22:52:12 +0100 ++ ++openjdk-6 (6b18~pre2-1ubuntu2) lucid; urgency=low ++ ++ * Fix build failure on ARM. ++ ++ -- Matthias Klose Fri, 12 Mar 2010 15:19:13 +0100 ++ ++openjdk-6 (6b18~pre2-1ubuntu1) lucid; urgency=low ++ ++ * Upload to lucid. ++ ++ -- Matthias Klose 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 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 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 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 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 Sat, 20 Feb 2010 15:36:06 +0100 ++ ++openjdk-6 (6b18~pre1-1) unstable; urgency=low ++ ++ * Upload to unstable. ++ ++ -- Matthias Klose 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 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 Sun, 31 Jan 2010 21:56:59 +0100 ++ ++openjdk-6 (6b18~pre1-1) unstable; urgency=low ++ ++ * Upload to unstable. ++ ++ -- Matthias Klose 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 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 Sun, 31 Jan 2010 21:56:59 +0100 ++ ++openjdk-6 (6b17-1.7-1) unstable; urgency=low ++ ++ * Upload to unstable. ++ ++ -- Matthias Klose 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 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 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 Thu, 24 Dec 2009 12:43:00 +0100 ++ ++openjdk-6 (6b17~pre3-1ubuntu1) lucid; urgency=low ++ ++ * Upload to lucid. ++ ++ -- Matthias Klose 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 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 Tue, 15 Dec 2009 16:41:12 +0100 ++ ++openjdk-6 (6b17~pre2-1) unstable; urgency=low ++ ++ * Upload to unstable. ++ ++ -- Matthias Klose 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 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 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 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 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 ). 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 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 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 Sat, 26 Sep 2009 16:01:48 +0200 ++ ++openjdk-6 (6b16-1.6.1-1) unstable; urgency=low ++ ++ * Upload to Debian unstable. ++ ++ -- Matthias Klose 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 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 Wed, 09 Sep 2009 22:18:38 +0200 ++ ++openjdk-6 (6b16-1.6~pre2-1) unstable; urgency=low ++ ++ * Upload to unstable. ++ ++ -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Mon, 02 Mar 2009 16:18:01 +0100 ++ ++openjdk-6 (6b14-0ubuntu16) jaunty; urgency=low ++ ++ * Regenerate auto files. ++ ++ -- Matthias Klose 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 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 Fri, 13 Feb 2009 10:13:55 +0100 ++ ++openjdk-6 (6b14-0ubuntu13) jaunty; urgency=low ++ ++ * Really configure with --disable-nio2. ++ ++ -- Matthias Klose 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 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 Tue, 10 Feb 2009 15:29:22 +0100 ++ ++openjdk-6 (6b14-0ubuntu10) jaunty; urgency=low ++ ++ * Explicitely remove PulseAudioMuteControl.java. ++ ++ -- Matthias Klose Mon, 26 Jan 2009 22:09:21 +0100 ++ ++openjdk-6 (6b14-0ubuntu9.1) jaunty; urgency=low ++ ++ * Test build. ++ ++ -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Tue, 11 Nov 2008 12:39:16 +0100 ++ ++openjdk-6 (6b12-1~exp1) experimental; urgency=low ++ ++ * Update IcedTea build infrastructure (20081025). ++ ++ -- Matthias Klose 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 Fri, 24 Oct 2008 23:06:32 +0200 ++ ++openjdk-6 (6b12-0ubuntu5) intrepid; urgency=low ++ ++ * Update IcedTea build infrastructure (20081024). ++ - Add --pkgversion= configure option. ++ - IcedTeaPlugin fixes. ++ - Fix xjc regressions. ++ * openjdk-jre-headless: Depend on ca-certificates-java. ++ * Configure with --pkgversion= to encode the package ++ version in the -version output and in vm dumps. ++ * cacao: Handle VM options Xverify:all and Xverify:none. ++ ++ -- Matthias Klose 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 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 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 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 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 Wed, 15 Oct 2008 19:49:05 +0000 ++ ++openjdk-6 (6b12~pre2-1) experimental; urgency=low ++ ++ * Upload to experimental. ++ ++ -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Thu, 24 Jul 2008 17:58:53 +0200 ++ ++openjdk-6 (6b11-1ubuntu1) intrepid; urgency=low ++ ++ * Regenerate the control file. ++ ++ -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Tue, 11 Mar 2008 21:39:27 +0100 ++ ++openjdk-6 (6b06-0ubuntu7) hardy; urgency=low ++ ++ * Build-depend on unzip. ++ ++ -- Matthias Klose Fri, 07 Mar 2008 16:47:43 +0100 ++ ++openjdk-6 (6b06-0ubuntu6) hardy; urgency=low ++ ++ * Build-depend on zip. ++ ++ -- Matthias Klose 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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=. ++ * 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 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 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 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 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 Tue, 24 Jul 2007 11:24:55 +0200 ++ ++icedtea (7~b14-20070704-1) unstable; urgency=low ++ ++ * Initial version. ++ ++ -- Michael Koch Wed, 04 Jul 2007 08:25:31 -0100 ++ diff --cc debian/compat index 0000000,0000000..ec63514 new file mode 100644 --- /dev/null +++ b/debian/compat @@@ -1,0 -1,0 +1,1 @@@ ++9 diff --cc debian/control index 0000000,0000000..3c6973f new file mode 100644 --- /dev/null +++ b/debian/control @@@ -1,0 -1,0 +1,184 @@@ ++Source: openjdk-8 ++Section: java ++Priority: optional ++Maintainer: OpenJDK Team ++Uploaders: Matthias Klose ++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 , 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. diff --cc debian/control.cacao-jre index 0000000,0000000..b21f6f9 new file mode 100644 --- /dev/null +++ b/debian/control.cacao-jre @@@ -1,0 -1,0 +1,15 @@@ ++ ++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. diff --cc debian/control.in index 0000000,0000000..d9daf1c new file mode 100644 --- /dev/null +++ b/debian/control.in @@@ -1,0 -1,0 +1,169 @@@ ++Source: @basename@ ++Section: java ++Priority: optional ++Maintainer: OpenJDK Team ++Uploaders: Matthias Klose ++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. diff --cc debian/control.jamvm-trans index 0000000,0000000..7ceb8b9 new file mode 100644 --- /dev/null +++ b/debian/control.jamvm-trans @@@ -1,0 -1,0 +1,12 @@@ ++ ++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. ++ diff --cc debian/control.zero-jre index 0000000,0000000..15bcf95 new file mode 100644 --- /dev/null +++ b/debian/control.zero-jre @@@ -1,0 -1,0 +1,15 @@@ ++ ++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. diff --cc debian/copyright index 0000000,0000000..0ccac8d new file mode 100644 --- /dev/null +++ b/debian/copyright @@@ -1,0 -1,0 +1,3650 @@@ ++This package was debianized by Matthias Klose 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 ++ Ioana Ivan ++ Matthias Klose ++ Denis Lila ++ Omair Majid ++ Xerxes Rånby ++ Marc Schoenefeld ++ Joshua Sumali ++ Jon VanAlten ++ ++Java Access Bridge: ++ Bill Haneman ++ Louise Miller ++ Gergõ Érdi ++ Laszlo (Laca) Peter ++ Jeff Cai ++ George Kraft IV ++ Padraig O'Briain ++ Darren Kenny ++ ++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 ++ Portions Copyright © 2002-2007 Louise Miller ++ Portions Copyright © 2002-2007 Gergõ Érdi ++ Portions Copyright © 2002-2007 Laszlo (Laca) Peter ++ Portions Copyright © 2002-2007 Jeff Cai ++ Portions Copyright © 2002-2007 George Kraft IV ++ Portions Copyright © 2002-2007 Padraig O'Briain ++ Portions Copyright © 2002-2007 Darren Kenny ++ ++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 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. ++ ++ 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. ++ ++ 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. ++ ++ 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. ++ ++ 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. ++ ++ 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. ++ ++ 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. ++ ++ 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. ++ ++ 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 ++ ++ 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. ++ ++ ++ Copyright (C) ++ ++ 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. ++ ++ , 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 ++Copyright (c) 1999-2004 Ludovic Rousseau ++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 ++ 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) 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 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 ++ ++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 ++ ++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 . ++ ++ 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. diff --cc debian/dbg8.py index 0000000,0000000..905d5db new file mode 100644 --- /dev/null +++ b/debian/dbg8.py @@@ -1,0 -1,0 +1,1208 @@@ ++# 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() diff --cc debian/font.properties.ja index 0000000,0000000..9191671 new file mode 100644 --- /dev/null +++ b/debian/font.properties.ja @@@ -1,0 -1,0 +1,197 @@@ ++# @(#)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 diff --cc debian/font.properties.ja.wgy_zenhai index 0000000,0000000..119822d new file mode 100644 --- /dev/null +++ b/debian/font.properties.ja.wgy_zenhai @@@ -1,0 -1,0 +1,244 @@@ ++# @(#)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 ++ diff --cc debian/generate-debian-orig.sh index 0000000,0000000..9ee8ac3 new file mode 100644 --- /dev/null +++ b/debian/generate-debian-orig.sh @@@ -1,0 -1,0 +1,68 @@@ ++#!/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 ++) diff --cc debian/generate-dfsg-zip.sh index 0000000,0000000..200be94 new file mode 100644 --- /dev/null +++ b/debian/generate-dfsg-zip.sh @@@ -1,0 -1,0 +1,60 @@@ ++#!/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 diff --cc debian/jvm.cfg-client_default index 0000000,0000000..60c3827 new file mode 100644 --- /dev/null +++ b/debian/jvm.cfg-client_default @@@ -1,0 -1,0 +1,6 @@@ ++# 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 diff --cc debian/jvm.cfg-default index 0000000,0000000..d886ba8 new file mode 100644 --- /dev/null +++ b/debian/jvm.cfg-default @@@ -1,0 -1,0 +1,5 @@@ ++# 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 diff --cc debian/mauve_tests index 0000000,0000000..edba589 new file mode 100644 --- /dev/null +++ b/debian/mauve_tests @@@ -1,0 -1,0 +1,2570 @@@ ++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 diff --cc debian/nss.cfg index 0000000,0000000..3535a40 new file mode 100644 --- /dev/null +++ b/debian/nss.cfg @@@ -1,0 -1,0 +1,4 @@@ ++name = NSS ++nssDbMode = noDb ++attributes = compatibility ++handleStartupErrors = ignoreMultipleInitialisation diff --cc debian/patches/8141491.diff index 0000000,0000000..5f2d024 new file mode 100644 --- /dev/null +++ b/debian/patches/8141491.diff @@@ -1,0 -1,0 +1,115 @@@ ++# 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_copyFromShortArray +++ * function and the source buffer passed to Java_java_nio_Bits_copyToArray +++ * may not be aligned on '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 */ diff --cc debian/patches/aarch32.diff index 0000000,0000000..edd3e2e new file mode 100644 --- /dev/null +++ b/debian/patches/aarch32.diff @@@ -1,0 -1,0 +1,180 @@@ ++ ++--- 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=" 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 ++ diff --cc debian/patches/aarch64.diff index 0000000,0000000..ec75061 new file mode 100644 --- /dev/null +++ b/debian/patches/aarch64.diff @@@ -1,0 -1,0 +1,95 @@@ ++# 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=" 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 diff --cc debian/patches/accessible-toolkit.patch index 0000000,0000000..b337a9c new file mode 100644 --- /dev/null +++ b/debian/patches/accessible-toolkit.patch @@@ -1,0 -1,0 +1,15 @@@ ++--- 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(); diff --cc debian/patches/adlc-parser.patch index 0000000,0000000..e092c03 new file mode 100644 --- /dev/null +++ b/debian/patches/adlc-parser.patch @@@ -1,0 -1,0 +1,11 @@@ ++# 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() { diff --cc debian/patches/alpha-float-const.diff index 0000000,0000000..e238050 new file mode 100644 --- /dev/null +++ b/debian/patches/alpha-float-const.diff @@@ -1,0 -1,0 +1,13 @@@ ++--- 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 diff --cc debian/patches/applet-hole.patch index 0000000,0000000..912db34 new file mode 100644 --- /dev/null +++ b/debian/patches/applet-hole.patch @@@ -1,0 -1,0 +1,106 @@@ ++--- 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 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 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); diff --cc debian/patches/atk-wrapper-security.patch index 0000000,0000000..1ec427d new file mode 100644 --- /dev/null +++ b/debian/patches/atk-wrapper-security.patch @@@ -1,0 -1,0 +1,10 @@@ ++--- 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.,\ diff --cc debian/patches/autoconf-select.diff index 0000000,0000000..f6b47a9 new file mode 100644 --- /dev/null +++ b/debian/patches/autoconf-select.diff @@@ -1,0 -1,0 +1,12 @@@ ++--- 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" diff --cc debian/patches/autoconf-updates.diff index 0000000,0000000..3e176ba new file mode 100644 --- /dev/null +++ b/debian/patches/autoconf-updates.diff @@@ -1,0 -1,0 +1,2267 @@@ ++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 . +++# +++# 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 ." +++ +++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 +++ #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 /* 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 +++ +++ 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 +++ #include +++ +++ 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 +++ 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' /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 +++ echo i586-unisys-sysv4 +++ exit ;; +++ *:UNIX_System_V:4*:FTX*) +++ # From Gerald Hewes . +++ # 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 < 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 . ++ # ++ # 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 . 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 ++--- 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 providers = new LinkedHashMap<>(); +++ private LinkedHashMap providers = new LinkedHashMap(); ++ ++ // The current lazy-lookup iterator ++ private LazyIterator lookupIterator; ++@@ -92,7 +91,10 @@ ++ } ++ ++ private ServiceLoader(Class 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 names = new ArrayList<>(); +++ ArrayList names = new ArrayList(); ++ 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 ServiceLoader load(Class service, ++ ClassLoader loader) ++ { ++- return new ServiceLoader<>(service, loader); +++ return new ServiceLoader(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. ++ * ++ *

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 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 getJavaFileObjectsFromPaths( ++- Iterable paths); +++ Iterable paths); ++ ++ /** ++ * Get file objects representing the given paths. ++@@ -86,7 +84,7 @@ ++ * @throws NullPointerException if the given array contains null ++ * elements ++ */ ++- Iterable getJavaFileObjects(Path... paths); +++ Iterable 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 getLocation(Location location); +++ Iterable 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 searchPath) throws IOException; +++ void setLocation(Location location, Iterable 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 files = new LinkedHashSet(); ++ 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 list() throws IOException { ++ List files = new ArrayList(); ++- try (DirectoryStream 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()); ++ ++ 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 accept(Visitor 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>(bundleList)); diff --cc debian/patches/compare-pointer-with-literal.patch index 0000000,0000000..3d2109a new file mode 100644 --- /dev/null +++ b/debian/patches/compare-pointer-with-literal.patch @@@ -1,0 -1,0 +1,11 @@@ ++--- 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); ++ ++ /* diff --cc debian/patches/compiler-flags.diff index 0000000,0000000..436023b new file mode 100644 --- /dev/null +++ b/debian/patches/compiler-flags.diff @@@ -1,0 -1,0 +1,11 @@@ ++# 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 diff --cc debian/patches/default-jvm-cfg-aarch64.diff index 0000000,0000000..6a07e4e new file mode 100644 --- /dev/null +++ b/debian/patches/default-jvm-cfg-aarch64.diff @@@ -1,0 -1,0 +1,22 @@@ ++--- 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); diff --cc debian/patches/default-jvm-cfg-default.diff index 0000000,0000000..c6b9cca new file mode 100644 --- /dev/null +++ b/debian/patches/default-jvm-cfg-default.diff @@@ -1,0 -1,0 +1,22 @@@ ++--- 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); diff --cc debian/patches/disable-doclint-by-default.diff index 0000000,0000000..b9570fc new file mode 100644 --- /dev/null +++ b/debian/patches/disable-doclint-by-default.diff @@@ -1,0 -1,0 +1,56 @@@ ++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 ++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.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, diff --cc debian/patches/dnd-files.patch index 0000000,0000000..e900ae8 new file mode 100644 --- /dev/null +++ b/debian/patches/dnd-files.patch @@@ -1,0 -1,0 +1,20 @@@ ++--- 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 uriList = new ArrayList(); ++- 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 { diff --cc debian/patches/dont-strip-images.diff index 0000000,0000000..275eb5d new file mode 100644 --- /dev/null +++ b/debian/patches/dont-strip-images.diff @@@ -1,0 -1,0 +1,13 @@@ ++--- 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 diff --cc debian/patches/enable-sa-on-aarch64.diff index 0000000,0000000..1415499 new file mode 100644 --- /dev/null +++ b/debian/patches/enable-sa-on-aarch64.diff @@@ -1,0 -1,0 +1,24 @@@ ++--- 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 diff --cc debian/patches/enumipv6-fix.patch index 0000000,0000000..82f73c5 new file mode 100644 --- /dev/null +++ b/debian/patches/enumipv6-fix.patch @@@ -1,0 -1,0 +1,11 @@@ ++--- 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) { ++ diff --cc debian/patches/fontconfig-japanese.diff index 0000000,0000000..793b2dd new file mode 100644 --- /dev/null +++ b/debian/patches/fontconfig-japanese.diff @@@ -1,0 -1,0 +1,219 @@@ ++# 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 diff --cc debian/patches/fontconfig-korean-nanum.diff index 0000000,0000000..6d28ad5 new file mode 100644 --- /dev/null +++ b/debian/patches/fontconfig-korean-nanum.diff @@@ -1,0 -1,0 +1,266 @@@ ++# 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 diff --cc debian/patches/fontconfig-wqy-microhei.patch index 0000000,0000000..23093aa new file mode 100644 --- /dev/null +++ b/debian/patches/fontconfig-wqy-microhei.patch @@@ -1,0 -1,0 +1,53 @@@ ++--- 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 diff --cc debian/patches/hotspot-disable-exec-shield-workaround.patch index 0000000,0000000..f49fb06 new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-disable-exec-shield-workaround.patch @@@ -1,0 -1,0 +1,15 @@@ ++# 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(); ++ ++ /* diff --cc debian/patches/hotspot-disable-jvmtidocs.diff index 0000000,0000000..200625a new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-disable-jvmtidocs.diff @@@ -1,0 -1,0 +1,22 @@@ ++--- 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) diff --cc debian/patches/hotspot-disable-werror.diff index 0000000,0000000..f70e61c new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-disable-werror.diff @@@ -1,0 -1,0 +1,13 @@@ ++# 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 diff --cc debian/patches/hotspot-ia64.diff index 0000000,0000000..8c6a241 new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-ia64.diff @@@ -1,0 -1,0 +1,11 @@@ ++--- 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 diff --cc debian/patches/hotspot-libpath-aarch32.diff index 0000000,0000000..f14102a new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-libpath-aarch32.diff @@@ -1,0 -1,0 +1,33 @@@ ++# 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. diff --cc debian/patches/hotspot-libpath-aarch64.diff index 0000000,0000000..e32eedf new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-libpath-aarch64.diff @@@ -1,0 -1,0 +1,33 @@@ ++# 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. diff --cc debian/patches/hotspot-libpath-default.diff index 0000000,0000000..94c67b3 new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-libpath-default.diff @@@ -1,0 -1,0 +1,33 @@@ ++# 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. diff --cc debian/patches/hotspot-mips-align.diff index 0000000,0000000..d65a5ca new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-mips-align.diff @@@ -1,0 -1,0 +1,11 @@@ ++--- 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. diff --cc debian/patches/hotspot-no-march-i586.diff index 0000000,0000000..ef065a2 new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-no-march-i586.diff @@@ -1,0 -1,0 +1,13 @@@ ++# 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 diff --cc debian/patches/hotspot-ppc64el-S8145913-montgomery-multiply-intrinsic.patch index 0000000,0000000..7cf4c7e new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-ppc64el-S8145913-montgomery-multiply-intrinsic.patch @@@ -1,0 -1,0 +1,464 @@@ ++ ++# 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 ++ ++--- 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 +++ ++ #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 diff --cc debian/patches/hotspot-ppc64el-S8168318-cmpldi.patch index 0000000,0000000..45d7905 new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-ppc64el-S8168318-cmpldi.patch @@@ -1,0 -1,0 +1,32 @@@ ++ ++# 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. ++ diff --cc debian/patches/hotspot-ppc64el-S8170328-andis.patch index 0000000,0000000..baf4ac7 new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-ppc64el-S8170328-andis.patch @@@ -1,0 -1,0 +1,34 @@@ ++ ++# 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 ++ ++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)); ++ diff --cc debian/patches/hotspot-ppc64el-S8181055-use-numa-v2-api.patch index 0000000,0000000..ff7bef1 new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-ppc64el-S8181055-use-numa-v2-api.patch @@@ -1,0 -1,0 +1,104 @@@ ++ ++# 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); ++ } ++ } diff --cc debian/patches/hotspot-ppc64el-S8181810-leverage-extrdi.patch index 0000000,0000000..252a204 new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-ppc64el-S8181810-leverage-extrdi.patch @@@ -1,0 -1,0 +1,67 @@@ ++ ++# 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 ++ ++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))); ++ ++ diff --cc debian/patches/hotspot-set-compiler.diff index 0000000,0000000..a2a6dfd new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-set-compiler.diff @@@ -1,0 -1,0 +1,12 @@@ ++# 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 diff --cc debian/patches/hotspot-warn-no-errformat.diff index 0000000,0000000..10bcd5c new file mode 100644 --- /dev/null +++ b/debian/patches/hotspot-warn-no-errformat.diff @@@ -1,0 -1,0 +1,24 @@@ ++# 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 diff --cc debian/patches/icc_loading_with_symlink.diff index 0000000,0000000..ed0937a new file mode 100644 --- /dev/null +++ b/debian/patches/icc_loading_with_symlink.diff @@@ -1,0 -1,0 +1,35 @@@ ++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 ++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; ++ } ++ ++ /** diff --cc debian/patches/icedtea-override-redirect-compiz.patch index 0000000,0000000..a90b8ef new file mode 100644 --- /dev/null +++ b/debian/patches/icedtea-override-redirect-compiz.patch @@@ -1,0 -1,0 +1,10 @@@ ++--- 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()); ++ } ++ diff --cc debian/patches/icedtea-sound.diff index 0000000,0000000..d74f2be new file mode 100644 --- /dev/null +++ b/debian/patches/icedtea-sound.diff @@@ -1,0 -1,0 +1,180 @@@ ++--- 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 diff --cc debian/patches/jamvm-fix.diff index 0000000,0000000..93e26ca new file mode 100644 --- /dev/null +++ b/debian/patches/jamvm-fix.diff @@@ -1,0 -1,0 +1,108 @@@ ++--- 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 . +++ * Copyright (C) 2011, 2013, 2014, 2015 +++ * Robert Lougher . ++ * ++ * 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 diff --cc debian/patches/java-access-bridge-security.patch index 0000000,0000000..2e5d0e1 new file mode 100644 --- /dev/null +++ b/debian/patches/java-access-bridge-security.patch @@@ -1,0 -1,0 +1,15 @@@ ++# 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 diff --cc debian/patches/javadoc-sort-enum-and-annotation-types.diff index 0000000,0000000..56e4d12 new file mode 100644 --- /dev/null +++ b/debian/patches/javadoc-sort-enum-and-annotation-types.diff @@@ -1,0 -1,0 +1,21 @@@ ++Description: Sort the enums and the annotations in the package-tree.html files ++Author: Emmanuel Bourg ++Forwarded: no ++--- 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> it = subclasses.values().iterator(); it.hasNext(); ) { ++ Collections.sort(it.next()); ++ } +++ +++ Collections.sort(baseEnums); +++ for (Iterator> it = subEnums.values().iterator(); it.hasNext(); ) { +++ Collections.sort(it.next()); +++ } +++ Collections.sort(baseAnnotationTypes); +++ for (Iterator> it = subAnnotationTypes.values().iterator(); it.hasNext(); ) { +++ Collections.sort(it.next()); +++ } ++ } ++ ++ /** diff --cc debian/patches/jdk-841269-filechooser.patch index 0000000,0000000..e84bf6b new file mode 100644 --- /dev/null +++ b/debian/patches/jdk-841269-filechooser.patch @@@ -1,0 -1,0 +1,26 @@@ ++--- 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); diff --cc debian/patches/jdk-derived-font-size.diff index 0000000,0000000..7934979 new file mode 100644 --- /dev/null +++ b/debian/patches/jdk-derived-font-size.diff @@@ -1,0 -1,0 +1,14 @@@ ++# 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; diff --cc debian/patches/jdk-getAccessibleValue.diff index 0000000,0000000..dda4614 new file mode 100644 --- /dev/null +++ b/debian/patches/jdk-getAccessibleValue.diff @@@ -1,0 -1,0 +1,222 @@@ ++--- 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 AccessibleAction, or null ++ */ ++ 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 ++ * null ++ */ ++ 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 AccessibleText, or null ++ */ ++ 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 AccessibleValue, or null ++ */ ++ 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 AccessibleAction, or null ++ */ ++ 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 ++ * null ++ */ ++ 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 AccessibleText, or null ++ */ ++ 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 AccessibleValue, or null ++ */ ++ 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; ++ } diff --cc debian/patches/jdk-i18n-pt_BR.diff index 0000000,0000000..fca0514 new file mode 100644 --- /dev/null +++ b/debian/patches/jdk-i18n-pt_BR.diff @@@ -1,0 -1,0 +1,11 @@@ ++--- 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 diff --cc debian/patches/jdk-java-nio-bits-unligned-aarch64.diff index 0000000,0000000..eedf658 new file mode 100644 --- /dev/null +++ b/debian/patches/jdk-java-nio-bits-unligned-aarch64.diff @@@ -1,0 -1,0 +1,34 @@@ ++# 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 ++ ++--- 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"); ++ } ++ ++ /** diff --cc debian/patches/jdk-ppc64el-S8170153.patch index 0000000,0000000..1019df6 new file mode 100644 --- /dev/null +++ b/debian/patches/jdk-ppc64el-S8170153.patch @@@ -1,0 -1,0 +1,28 @@@ ++ ++# 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))) diff --cc debian/patches/jdk-pulseaudio.diff index 0000000,0000000..06263ab new file mode 100644 --- /dev/null +++ b/debian/patches/jdk-pulseaudio.diff @@@ -1,0 -1,0 +1,16 @@@ ++--- 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 diff --cc debian/patches/jdk-target-arch-define.diff index 0000000,0000000..781b931 new file mode 100644 --- /dev/null +++ b/debian/patches/jdk-target-arch-define.diff @@@ -1,0 -1,0 +1,19 @@@ ++# 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 diff --cc debian/patches/jexec.diff.in index 0000000,0000000..5f343a1 new file mode 100644 --- /dev/null +++ b/debian/patches/jexec.diff.in @@@ -1,0 -1,0 +1,14 @@@ ++--- 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); diff --cc debian/patches/kfreebsd-support-hotspot.diff index 0000000,0000000..f3f5bb3 new file mode 100644 --- /dev/null +++ b/debian/patches/kfreebsd-support-hotspot.diff @@@ -1,0 -1,0 +1,843 @@@ ++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 +++#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 ++ # include ++ # include +++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +++# include +++# include +++#ifndef ETIME +++# define ETIME ETIMEDOUT +++#endif +++#else ++ # include ++ # include +++#endif ++ # include ++ # include ++ # include ++@@ -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 ++ # include ++ +++#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 ++ # 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 ++ #include ++ #include +++#if defined(__FreeBSD_kernel__) +++#include +++#include +++#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) \ diff --cc debian/patches/kfreebsd-support-jamvm.diff index 0000000,0000000..cd44bcf new file mode 100644 --- /dev/null +++ b/debian/patches/kfreebsd-support-jamvm.diff @@@ -1,0 -1,0 +1,42 @@@ ++Description: ++ - Add ifdef TIOCINQ = FIONREAD ++ jamvm/src/classlib/openjdk/jvm.c ++ - Update configure for kfreebsd-amd64 ++ jamvm/jamvm/configure.ac ++Author: Damien Raude-Morvan ++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; ++ diff --cc debian/patches/kfreebsd-support-jdk.diff index 0000000,0000000..de2b4c9 new file mode 100644 --- /dev/null +++ b/debian/patches/kfreebsd-support-jdk.diff @@@ -1,0 -1,0 +1,5171 @@@ ++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 ++Author: Guido Günther ++Author: Steven Chamberlain ++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 ++ #include ++ #include ++-#ifdef __linux__ +++#if defined(__linux__) || defined(__GLIBC__) ++ # include ++ # include ++ # include ++@@ -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 ++ #endif ++ ++-#if defined(__linux__) || defined(_AIX) +++#if defined(__linux__) || defined(_AIX) || defined(__GLIBC__) ++ #include ++ #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 ++ #endif ++ ++-#if defined(__linux__) +++#if defined(__linux__) || defined(__GLIBC__) ++ #include ++ #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 ++ #elif defined(_AIX) ++ #include ++-#elif defined(_ALLBSD_SOURCE) +++#elif defined(_ALLBSD_SOURCE) || defined(__FreeBSD_kernel__) ++ #include ++ #include ++ #include ++@@ -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 +++#include +++#include +++#include +++#include +++#include +++#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 ++ #include ++ #include ++@@ -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 ++ #include ++ ++-#if defined(__linux__) || defined(_ALLBSD_SOURCE) +++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) ++ #include ++ #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 ++ #include ++ /* 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 ++ #include ++ ++-#if __linux__ +++#if defined(__linux__) || defined(__GLIBC__) ++ #include ++ #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 ++ #include ++ ++-#if __linux__ +++#if defined(__linux__) || defined(__GLIBC__) ++ #include ++ #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 ++ #include ++ ++-#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 ++-#endif /* __linux__ */ +++#endif /* __linux__ || __GLIBC__ */ ++ #include ++ #include ++ #include ++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 ++ #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 does not define intptr_t ++ */ ++-#if defined(__linux__) || defined(MACOSX) +++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) +++ ++ #include ++ #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 ++ #endif ++ ++-#if defined(__linux__) || defined(_ALLBSD_SOURCE) +++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) ++ #include ++ #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 ++ #include ++ #include ++-#if defined(__linux__) || defined(_ALLBSD_SOURCE) +++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) ++ #include ++ #else ++ #include ++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 ++ #include ++ #include ++-#ifdef __linux__ +++#if defined(__linux__) || defined(__GLIBC__) ++ #include ++ #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 ++ #include ++ #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 ++ #include ++ #include ++@@ -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 ++ #include ++ #include ++-#if defined(__APPLE__) +++#if defined(__APPLE__) || defined(__FreeBSD_kernel__) ++ #include ++ #include ++ #include ++ #include ++-#include ++ #endif +++#include ++ #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 ++ #include ++ +++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +++#include +++#include +++#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 /* Defines TCP_NODELAY, needed for 2.6 */ ++ #include ++-#ifdef __linux__ +++#if defined(__linux__) || defined(__GLIBC__) ++ #include ++ #endif ++ #include ++@@ -41,7 +41,7 @@ ++ #ifdef __solaris__ ++ #include ++ #endif ++-#ifdef __linux__ +++#if defined(__linux__) || defined(__GLIBC__) ++ #include ++ #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 ++ #include ++ ++-#if defined(_ALLBSD_SOURCE) +++#if defined(_ALLBSD_SOURCE) || defined (__FreeBSD_kernel__) ++ #include ++ #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= +++# +++# 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== (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.= +++# +++# 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. +++# +++# 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 \ diff --cc debian/patches/ld-symbolic-functions-aarch64.diff index 0000000,0000000..8f72868 new file mode 100644 --- /dev/null +++ b/debian/patches/ld-symbolic-functions-aarch64.diff @@@ -1,0 -1,0 +1,32 @@@ ++--- 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) ++ ++ # diff --cc debian/patches/ld-symbolic-functions-default.diff index 0000000,0000000..42c1212 new file mode 100644 --- /dev/null +++ b/debian/patches/ld-symbolic-functions-default.diff @@@ -1,0 -1,0 +1,21 @@@ ++--- 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 diff --cc debian/patches/libjpeg-fix.diff index 0000000,0000000..6b11607 new file mode 100644 --- /dev/null +++ b/debian/patches/libjpeg-fix.diff @@@ -1,0 -1,0 +1,13 @@@ ++# 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 diff --cc debian/patches/libpcsclite-dlopen.diff index 0000000,0000000..55c3d3f new file mode 100644 --- /dev/null +++ b/debian/patches/libpcsclite-dlopen.diff @@@ -1,0 -1,0 +1,36 @@@ ++--- 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); diff --cc debian/patches/link-with-as-needed.diff index 0000000,0000000..0fd67a9 new file mode 100644 --- /dev/null +++ b/debian/patches/link-with-as-needed.diff @@@ -1,0 -1,0 +1,40 @@@ ++# 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" \ diff --cc debian/patches/m68k-support.diff index 0000000,0000000..34f2112 new file mode 100644 --- /dev/null +++ b/debian/patches/m68k-support.diff @@@ -1,0 -1,0 +1,1224 @@@ ++--- 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 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 diff --cc debian/patches/multiple-pkcs11-library-init.patch index 0000000,0000000..8f649bb new file mode 100644 --- /dev/null +++ b/debian/patches/multiple-pkcs11-library-init.patch @@@ -1,0 -1,0 +1,72 @@@ ++# 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 { diff --cc debian/patches/no-pch-build.diff index 0000000,0000000..0e1de32 new file mode 100644 --- /dev/null +++ b/debian/patches/no-pch-build.diff @@@ -1,0 -1,0 +1,110 @@@ ++--- 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" diff --cc debian/patches/nonreparenting-wm.diff index 0000000,0000000..24ecc7e new file mode 100644 --- /dev/null +++ b/debian/patches/nonreparenting-wm.diff @@@ -1,0 -1,0 +1,59 @@@ ++--- 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; diff --cc debian/patches/pass-extra-flags.diff index 0000000,0000000..9b6e378 new file mode 100644 --- /dev/null +++ b/debian/patches/pass-extra-flags.diff @@@ -1,0 -1,0 +1,23 @@@ ++--- 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 diff --cc debian/patches/ppc64el.diff index 0000000,0000000..07e80b8 new file mode 100644 --- /dev/null +++ b/debian/patches/ppc64el.diff @@@ -1,0 -1,0 +1,53 @@@ ++--- 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 && diff --cc debian/patches/ppc64le-8036767.diff index 0000000,0000000..f372a31 new file mode 100644 --- /dev/null +++ b/debian/patches/ppc64le-8036767.diff @@@ -1,0 -1,0 +1,114 @@@ ++# 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=" 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 ++ diff --cc debian/patches/pr2775-cache_api.diff index 0000000,0000000..4d79d12 new file mode 100644 --- /dev/null +++ b/debian/patches/pr2775-cache_api.diff @@@ -1,0 -1,0 +1,54 @@@ ++commit 25b39703b2c3468f666f6175ff94e46526d402a7 ++Author: Xerxes RÃ¥nby ++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 ++ ++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) { diff --cc debian/patches/s390x-thread-stack-size.diff index 0000000,0000000..742c80c new file mode 100644 --- /dev/null +++ b/debian/patches/s390x-thread-stack-size.diff @@@ -1,0 -1,0 +1,13 @@@ ++# 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 diff --cc debian/patches/set-exec-name.diff index 0000000,0000000..5c4d954 new file mode 100644 --- /dev/null +++ b/debian/patches/set-exec-name.diff @@@ -1,0 -1,0 +1,47 @@@ ++--- 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 */ diff --cc debian/patches/sparc-fixes.diff index 0000000,0000000..2361107 new file mode 100644 --- /dev/null +++ b/debian/patches/sparc-fixes.diff @@@ -1,0 -1,0 +1,15 @@@ ++--- 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. diff --cc debian/patches/sparc-stubgenerator.diff index 0000000,0000000..4e0ea20 new file mode 100644 --- /dev/null +++ b/debian/patches/sparc-stubgenerator.diff @@@ -1,0 -1,0 +1,44 @@@ ++Author: Damien Raude-Morvan ++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); diff --cc debian/patches/stack-direction.diff index 0000000,0000000..04deba3 new file mode 100644 --- /dev/null +++ b/debian/patches/stack-direction.diff @@@ -1,0 -1,0 +1,217 @@@ ++# 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; ++ } diff --cc debian/patches/system-lcms.diff index 0000000,0000000..b1a61f9 new file mode 100644 --- /dev/null +++ b/debian/patches/system-lcms.diff @@@ -1,0 -1,0 +1,101 @@@ ++# 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; ++ } ++ }); diff --cc debian/patches/system-libjpeg.diff index 0000000,0000000..93ac155 new file mode 100644 --- /dev/null +++ b/debian/patches/system-libjpeg.diff @@@ -1,0 -1,0 +1,220 @@@ ++# 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() { ++ 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() { ++ 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() { ++ 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 ++-#include "jerror.h" +++#include ++ ++ #undef MAX ++ #define MAX(a,b) ((a) > (b) ? (a) : (b)) diff --cc debian/patches/system-libpng.diff index 0000000,0000000..8a22715 new file mode 100644 --- /dev/null +++ b/debian/patches/system-libpng.diff @@@ -1,0 -1,0 +1,113 @@@ ++# 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 ++ #include ++ ++ #define SIG_BYTES 8 diff --cc debian/patches/system-pcsclite.diff index 0000000,0000000..4ba4deb new file mode 100644 --- /dev/null +++ b/debian/patches/system-pcsclite.diff @@@ -1,0 -1,0 +1,181 @@@ ++--- 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 diff --cc debian/patches/workaround_expand_exec_shield_cs_limit.diff index 0000000,0000000..a4c9440 new file mode 100644 --- /dev/null +++ b/debian/patches/workaround_expand_exec_shield_cs_limit.diff @@@ -1,0 -1,0 +1,22 @@@ ++--- 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 ++ diff --cc debian/patches/zero-architectures.diff index 0000000,0000000..49bc471 new file mode 100644 --- /dev/null +++ b/debian/patches/zero-architectures.diff @@@ -1,0 -1,0 +1,109 @@@ ++# 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) ++ diff --cc debian/patches/zero-fpu-control-is-noop.diff index 0000000,0000000..c65eb57 new file mode 100644 --- /dev/null +++ b/debian/patches/zero-fpu-control-is-noop.diff @@@ -1,0 -1,0 +1,27 @@@ ++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 ++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) { diff --cc debian/patches/zero-opt.diff index 0000000,0000000..7d3d763 new file mode 100644 --- /dev/null +++ b/debian/patches/zero-opt.diff @@@ -1,0 -1,0 +1,16 @@@ ++# 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 diff --cc debian/patches/zero-sh.diff index 0000000,0000000..5214405 new file mode 100644 --- /dev/null +++ b/debian/patches/zero-sh.diff @@@ -1,0 -1,0 +1,27 @@@ ++# 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 diff --cc debian/patches/zero-sparc.diff index 0000000,0000000..96f4080 new file mode 100644 --- /dev/null +++ b/debian/patches/zero-sparc.diff @@@ -1,0 -1,0 +1,287 @@@ ++--- 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 diff --cc debian/patches/zero-x32.diff index 0000000,0000000..2c67c5d new file mode 100644 --- /dev/null +++ b/debian/patches/zero-x32.diff @@@ -1,0 -1,0 +1,86 @@@ ++# 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 ++-#include ++ #include ++ #include ++ ++--- 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 ++-#include ++ #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 diff --cc debian/rules index 0000000,0000000..547b330 new file mode 100755 --- /dev/null +++ b/debian/rules @@@ -1,0 -1,0 +1,2028 @@@ ++#!/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= 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 , 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 diff --cc debian/sharedmimeinfo index 0000000,0000000..78604fd new file mode 100644 --- /dev/null +++ b/debian/sharedmimeinfo @@@ -1,0 -1,0 +1,12 @@@ ++ ++ ++ ++ Java Archive ++ ++ ++ ++ ++ Java Web Start application ++ ++ ++ diff --cc debian/source/format index 0000000,0000000..163aaf8 new file mode 100644 --- /dev/null +++ b/debian/source/format @@@ -1,0 -1,0 +1,1 @@@ ++3.0 (quilt) diff --cc debian/source/lintian-overrides index 0000000,0000000..65591a0 new file mode 100644 --- /dev/null +++ b/debian/source/lintian-overrides @@@ -1,0 -1,0 +1,2 @@@ ++openjdk-8 source: quilt-build-dep-but-no-series-file ++openjdk-8 source: patch-file-present-but-not-mentioned-in-series diff --cc debian/sun_java.xpm index 0000000,0000000..00db1b6 new file mode 100644 --- /dev/null +++ b/debian/sun_java.xpm @@@ -1,0 -1,0 +1,194 @@@ ++/* 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." ++}; diff --cc debian/sun_java_app.xpm index 0000000,0000000..7a0f941 new file mode 100644 --- /dev/null +++ b/debian/sun_java_app.xpm @@@ -1,0 -1,0 +1,199 @@@ ++/* 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. ", ++" $ $ $ $ $ $ $ "}; diff --cc debian/swing.properties index 0000000,0000000..0f55df0 new file mode 100644 --- /dev/null +++ b/debian/swing.properties @@@ -1,0 -1,0 +1,2 @@@ ++# uncomment to set the default look and feel to GTK ++#swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel diff --cc debian/tests/control index 0000000,0000000..26cce0a new file mode 100644 --- /dev/null +++ b/debian/tests/control @@@ -1,0 -1,0 +1,7 @@@ ++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 diff --cc debian/tests/hotspot index 0000000,0000000..951cd75 new file mode 100755 --- /dev/null +++ b/debian/tests/hotspot @@@ -1,0 -1,0 +1,10 @@@ ++#!/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 diff --cc debian/tests/jdk index 0000000,0000000..690e2ae new file mode 100755 --- /dev/null +++ b/debian/tests/jdk @@@ -1,0 -1,0 +1,29 @@@ ++#!/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 diff --cc debian/tests/jtdiff-autopkgtest.sh index 0000000,0000000..d8a6ad5 new file mode 100755 --- /dev/null +++ b/debian/tests/jtdiff-autopkgtest.sh @@@ -1,0 -1,0 +1,36 @@@ ++#!/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" diff --cc debian/tests/jtreg-autopkgtest.in index 0000000,0000000..289814c new file mode 100755 --- /dev/null +++ b/debian/tests/jtreg-autopkgtest.in @@@ -1,0 -1,0 +1,89 @@@ ++#!/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},,g;s,$(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} \ ++ $@ diff --cc debian/tests/jtreg-autopkgtest.sh index 0000000,0000000..43e23ee new file mode 100755 --- /dev/null +++ b/debian/tests/jtreg-autopkgtest.sh @@@ -1,0 -1,0 +1,89 @@@ ++#!/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},,g;s,$(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} \ ++ $@ diff --cc debian/tests/langtools index 0000000,0000000..e1892a3 new file mode 100755 --- /dev/null +++ b/debian/tests/langtools @@@ -1,0 -1,0 +1,10 @@@ ++#!/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 diff --cc debian/tests/start-xvfb.sh index 0000000,0000000..423d73a new file mode 100755 --- /dev/null +++ b/debian/tests/start-xvfb.sh @@@ -1,0 -1,0 +1,19 @@@ ++#!/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 diff --cc debian/update-hgrev.sh index 0000000,0000000..8df65cf new file mode 100644 --- /dev/null +++ b/debian/update-hgrev.sh @@@ -1,0 -1,0 +1,29 @@@ ++#!/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 diff --cc debian/update-shasum.sh index 0000000,0000000..af38b92 new file mode 100644 --- /dev/null +++ b/debian/update-shasum.sh @@@ -1,0 -1,0 +1,23 @@@ ++#!/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