diff options
154 files changed, 33512 insertions, 0 deletions
diff --git a/debian/JAVA_HOME b/debian/JAVA_HOME new file mode 100644 index 0000000..876e989 --- /dev/null +++ b/debian/JAVA_HOME @@ -0,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 --git a/debian/JB-archive.applications.in b/debian/JB-archive.applications.in new file mode 100644 index 0000000..7f20fd5 --- /dev/null +++ b/debian/JB-archive.applications.in @@ -0,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 --git a/debian/JB-archive.keys.in b/debian/JB-archive.keys.in new file mode 100644 index 0000000..743e3c8 --- /dev/null +++ b/debian/JB-archive.keys.in @@ -0,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 --git a/debian/JB-archive.mime.in b/debian/JB-archive.mime.in new file mode 100644 index 0000000..e354ead --- /dev/null +++ b/debian/JB-archive.mime.in @@ -0,0 +1,6 @@ +application/java-archive + ext: jar +application/x-java-archive + ext: jar +application/x-jar + ext: jar diff --git a/debian/JB-dbg.overrides.in b/debian/JB-dbg.overrides.in new file mode 100644 index 0000000..04f696f --- /dev/null +++ b/debian/JB-dbg.overrides.in @@ -0,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 --git a/debian/JB-demo.menu.in b/debian/JB-demo.menu.in new file mode 100644 index 0000000..58aec29 --- /dev/null +++ b/debian/JB-demo.menu.in @@ -0,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 --git a/debian/JB-demo.overrides.in b/debian/JB-demo.overrides.in new file mode 100644 index 0000000..e148b99 --- /dev/null +++ b/debian/JB-demo.overrides.in @@ -0,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 --git a/debian/JB-doc.doc-base.in b/debian/JB-doc.doc-base.in new file mode 100644 index 0000000..619d9ae --- /dev/null +++ b/debian/JB-doc.doc-base.in @@ -0,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 --git a/debian/JB-fonts.defoma-hints.in b/debian/JB-fonts.defoma-hints.in new file mode 100644 index 0000000..80212e2 --- /dev/null +++ b/debian/JB-fonts.defoma-hints.in @@ -0,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 --git a/debian/JB-java.desktop.in b/debian/JB-java.desktop.in new file mode 100644 index 0000000..eec5e5c --- /dev/null +++ b/debian/JB-java.desktop.in @@ -0,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 --git a/debian/JB-jconsole.desktop.in b/debian/JB-jconsole.desktop.in new file mode 100644 index 0000000..8a87820 --- /dev/null +++ b/debian/JB-jconsole.desktop.in @@ -0,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 --git a/debian/JB-jdk-headless.postinst.in b/debian/JB-jdk-headless.postinst.in new file mode 100644 index 0000000..0e1ef5f --- /dev/null +++ b/debian/JB-jdk-headless.postinst.in @@ -0,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 --git a/debian/JB-jdk-headless.preinst.in b/debian/JB-jdk-headless.preinst.in new file mode 100644 index 0000000..01698fc --- /dev/null +++ b/debian/JB-jdk-headless.preinst.in @@ -0,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 --git a/debian/JB-jdk-headless.prerm.in b/debian/JB-jdk-headless.prerm.in new file mode 100644 index 0000000..80bf503 --- /dev/null +++ b/debian/JB-jdk-headless.prerm.in @@ -0,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 --git a/debian/JB-jdk.menu.in b/debian/JB-jdk.menu.in new file mode 100644 index 0000000..14f11ec --- /dev/null +++ b/debian/JB-jdk.menu.in @@ -0,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 --git a/debian/JB-jdk.postinst.in b/debian/JB-jdk.postinst.in new file mode 100644 index 0000000..bdffbe3 --- /dev/null +++ b/debian/JB-jdk.postinst.in @@ -0,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 --git a/debian/JB-jdk.preinst.in b/debian/JB-jdk.preinst.in new file mode 100644 index 0000000..3d693f9 --- /dev/null +++ b/debian/JB-jdk.preinst.in @@ -0,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 --git a/debian/JB-jdk.prerm.in b/debian/JB-jdk.prerm.in new file mode 100644 index 0000000..f512195 --- /dev/null +++ b/debian/JB-jdk.prerm.in @@ -0,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 --git a/debian/JB-jre-headless.overrides.in b/debian/JB-jre-headless.overrides.in new file mode 100644 index 0000000..52adac8 --- /dev/null +++ b/debian/JB-jre-headless.overrides.in @@ -0,0 +1,8 @@ +# 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 diff --git a/debian/JB-jre-headless.postinst.in b/debian/JB-jre-headless.postinst.in new file mode 100644 index 0000000..1f86eeb --- /dev/null +++ b/debian/JB-jre-headless.postinst.in @@ -0,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 --git a/debian/JB-jre-headless.postrm.in b/debian/JB-jre-headless.postrm.in new file mode 100644 index 0000000..5c8811f --- /dev/null +++ b/debian/JB-jre-headless.postrm.in @@ -0,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 --git a/debian/JB-jre-headless.preinst.in b/debian/JB-jre-headless.preinst.in new file mode 100644 index 0000000..4afe9d5 --- /dev/null +++ b/debian/JB-jre-headless.preinst.in @@ -0,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 --git a/debian/JB-jre-headless.prerm.in b/debian/JB-jre-headless.prerm.in new file mode 100644 index 0000000..d8e24ce --- /dev/null +++ b/debian/JB-jre-headless.prerm.in @@ -0,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 --git a/debian/JB-jre-zero.overrides.in b/debian/JB-jre-zero.overrides.in new file mode 100644 index 0000000..1616f86 --- /dev/null +++ b/debian/JB-jre-zero.overrides.in @@ -0,0 +1,2 @@ +# Strip libjvm.so with --strip-debug instead of --strip-unneeded. LP: #574997. +@basename@-jre-zero binary: unstripped-binary-or-object diff --git a/debian/JB-jre.menu.in b/debian/JB-jre.menu.in new file mode 100644 index 0000000..024b63f --- /dev/null +++ b/debian/JB-jre.menu.in @@ -0,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 --git a/debian/JB-jre.overrides.in b/debian/JB-jre.overrides.in new file mode 100644 index 0000000..c7cb389 --- /dev/null +++ b/debian/JB-jre.overrides.in @@ -0,0 +1,2 @@ +# these are in the -jre-headless package, -jre depends on it +@basename@-jre binary: desktop-command-not-in-package diff --git a/debian/JB-jre.postinst.in b/debian/JB-jre.postinst.in new file mode 100644 index 0000000..e1a27b7 --- /dev/null +++ b/debian/JB-jre.postinst.in @@ -0,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 --git a/debian/JB-jre.preinst.in b/debian/JB-jre.preinst.in new file mode 100644 index 0000000..3c64bf7 --- /dev/null +++ b/debian/JB-jre.preinst.in @@ -0,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 --git a/debian/JB-jre.prerm.in b/debian/JB-jre.prerm.in new file mode 100644 index 0000000..f32dbe6 --- /dev/null +++ b/debian/JB-jre.prerm.in @@ -0,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 --git a/debian/JB-policytool.desktop.in b/debian/JB-policytool.desktop.in new file mode 100644 index 0000000..ac29c47 --- /dev/null +++ b/debian/JB-policytool.desktop.in @@ -0,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 --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..ee04a50 --- /dev/null +++ b/debian/README.Debian @@ -0,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 + + <tool name> -J-jamvm|-J-zero|-J-shark. + +The zero build on the ix86 architectures is built with shark (just in time +compiler); to use the zero build without shark support, use the `-Xint' +option to operate in interpreted-only mode. + +On some architectures (currently armel and powerpc, when built against +llvm-2.6) which use ther zero vm as the default, the openjdk-7-jre-zero +package contains the shark vm. + +To change the default permanently, edit /etc/java-7-openjdk/jvm.cfg. + +The Zero/Shark VM can be found in the openjdk-7-jre-zero package (on the +architectures where the Hotspot VM is available). + +Please look for further documentation in the directory +/usr/share/doc/openjdk-7-jre/ . + +The package openjdk-7-jre-headless ships a cgi script +/usr/lib/jvm/java-7-openjdk/bin/java-rmi.cgi that you must integrate +into your webserver setup manually if you need it. It is not activated +automatically. + + +Note for non-reparenting window manager users +--------------------------------------------- + +If you are using a non-reparenting window manager, such as ratpoison, awesome +or dwm, some Java graphical applications using the AWT toolkit will only +display empty grey windows, as described in but #508650. + +There are two solutions to work around this issue: +1. mask your window manager as one of the non-reparenting ones supported by AWT, + using the wmname <http://tools.suckless.org/wmname> tool from the + suckless-tools package: + $ wmname LG3D +2. set the environment variable _JAVA_AWT_WM_NONREPARENTING: + $ export _JAVA_AWT_WM_NONREPARENTING=true + +You can automate these tasks by writing them to your ~/.xsessionrc: +$ cat >> ~/.xsessionrc <<EOF +export _JAVA_AWT_WM_NONREPARENTING=true +EOF + + +IcedTea NPPlugin +---------------- + +IcedTea provides a java plugin for at least mozilla based browsers. It is +not yet 100% with the closed source plugin, but much improved to the former +GCJPlugin. If you experience problems with the plugin, start your browser +from the command line with the environment variable ICEDTEAPLUGIN_DEBUG set, +and attach this output to a bug report. You usually should not expect a +quick fix, if the applet code is closed source, or only accessible after +creating accounts for external web services using these applets. + + + -- Matthias Klose <doko@ubuntu.com> Sun, 03 May 2009 13:58:10 +0200 + -- Torsten Werner <twerner@debian.org> Wed, 02 Apr 2008 11:46:53 +0200 diff --git a/debian/README.alternatives.in b/debian/README.alternatives.in new file mode 100644 index 0000000..19d46fb --- /dev/null +++ b/debian/README.alternatives.in @@ -0,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 <jname> alternatives: + + update-java-alternatives --jre --set <jname> + +- Set all runtime tools (headless only) to point to the <jname> + alternatives: + + update-java-alternatives --jre-headless --set <jname> + +- Set all runtime and development tools to point to the <jname> + alternatives: + + update-java-alternatives --set <jname> + +- Set all runtime and development tools to auto mode: + + update-java-alternatives --auto diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..87678eb --- /dev/null +++ b/debian/README.source @@ -0,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 <http://jamvm.sourceforge.net>. +- Debian packaging scripts and patches. + +Building a new OpenJDK-8 Debian package +=================================================== +Pre-requisites: +- Mercurial +- Bazaar + sudo aptitude install mercurial bzr + +0) Clone OpenJDK debian packaging: + bzr branch lp:~openjdk/openjdk/openjdk7 openjdk7/ + or update existing repository clone: + (cd openjdk7/; bzr pull --remember lp:~openjdk/openjdk/openjdk7) + +1) Clone IcedTea-7 HG: + hg clone http://icedtea.classpath.org/hg/icedtea7 icedtea-2.1.1/ + or update existing repository clone: + (cd icedtea7/; hg pull -u) + +2) Download OpenJDK upstream tarballs and move them to $BUILD/ + export BUILD=7u3 + mkdir -p $BUILD/ + ( + cd icedtea-2.1.1/ + sh autogen.sh && ./configure --enable-jamvm + make download + ) + + mv icedtea-2.1.1/*.tar.gz $BUILD/ + ( + cd icedtea-2.1.1/ + make distclean + ) + +3) Remove files with unclear license from jdk.tar.gz: + sh openjdk7/generate-dfsg-zip.sh $BUILD/jdk.tar.gz + sh openjdk7/generate-dfsg-zip.sh $BUILD/langtools.tar.gz + +4) Check tarballs' name and version (for original directory name) + in openjdk7/generate-debian-orig.sh and package version in + openjdk7/changelog + +5) Generate "orig" directory and "orig+debian" directory + sh openjdk7/generate-debian-orig.sh + +Support for DEB_BUILD_OPTIONS +============================= +As described in Debian Policy §4.9.1, current package's debian/rules support +the standardized environment variable DEB_BUILD_OPTIONS. This variable can +contain several flags to change how a package is compiled and built. + + * nocheck: don't run jtreg test suites. + * nodocs: pass --disable-docs to IcedTea configure script, which + disable Javadoc generation. + * nostrip: debugging symbols should not be stripped from the + binary during installation + * parallel=X: package should be built using up to X parallel processes + * nobootstrap: don't use gcj to bootstrap OpenJDK but use existing OpenJDK + installed on current machine. + * noaltzero: don't build alternative Zero VM. + * noaltshark: don't build alternative Shark VM. + * noaltjamvm: don't build alternative Jamvm VM. + +Sample usage: +DEB_BUILD_OPTIONS="parallel=5 nocheck" debuild -i"(\.hg|\.bzr)" + + Build with 5 parallel processes and don't run jtreg test suites. + +This also work with cowbuilder/pbuilder: +DEB_BUILD_OPTIONS="parallel=5 nocheck" pdebuild -i"(\.hg|\.bzr)" --logfile ../build.log --pbuilder cowbuilder diff --git a/debian/TODO b/debian/TODO new file mode 100644 index 0000000..f5c24bd --- /dev/null +++ b/debian/TODO @@ -0,0 +1,2 @@ + - PR2446: Support system libsctp + - support system libfontconfig diff --git a/debian/accessibility-atk.properties.disabled b/debian/accessibility-atk.properties.disabled new file mode 100644 index 0000000..c1bdc48 --- /dev/null +++ b/debian/accessibility-atk.properties.disabled @@ -0,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 --git a/debian/accessibility-atk.properties.enabled b/debian/accessibility-atk.properties.enabled new file mode 100644 index 0000000..e1129f8 --- /dev/null +++ b/debian/accessibility-atk.properties.enabled @@ -0,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 --git a/debian/accessibility.properties b/debian/accessibility.properties new file mode 100644 index 0000000..e009589 --- /dev/null +++ b/debian/accessibility.properties @@ -0,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 --git a/debian/buildwatch.sh b/debian/buildwatch.sh new file mode 100644 index 0000000..1747dae --- /dev/null +++ b/debian/buildwatch.sh @@ -0,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 --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..e66c9bc --- /dev/null +++ b/debian/changelog @@ -0,0 +1,4374 @@ +openjdk-8 (8u131-b11-1) unstable; urgency=high + + * Update to 8u131-b11, Hotspot 8u112-b12 for AArch64. + * Security fixes: + - S8167110, CVE-2017-3514: Windows peering issue. + - S8165626, CVE-2017-3512: Improved window framing. + - S8163528, CVE-2017-3511: Better library loading. + - S8169011, CVE-2017-3526: Resizing XML parse trees. + - S8163520, CVE-2017-3509: Reuse cache entries. + - S8171533, CVE-2017-3544: Better email transfer. + - S8170222, CVE-2017-3533: Better transfers of files. + - S8171121, CVE-2017-3539: Enhancing jar checking. + + [ Tiago Stürmer Daitx ] + * d/p/jdk-ppc64el-S8165231.diff: fixes java.nio.Bits.unaligned() on + ppc64el. LP: #1677612. + * debian/buildwatch.sh: updated to stop it if no 'make' process is running, + as it probably means that the build failed - otherwise buildwatch keeps + the builder alive until it exits after the timer (3 hours by default) + expires. + + [ Matthias Klose ] + * openjdk-8-jre-headless: Add a break for tzdata-java. Closes: #857992. + * Use fonts-wqy-microhei and fonts-wqy-zenhei instead of transitional package + names. Closes: #859528. + + -- Matthias Klose <doko@ubuntu.com> Mon, 01 May 2017 19:28:19 +0700 + +openjdk-8 (8u121-b13-4.1) unstable; urgency=medium + + * Non-maintainer upload. + * openjdk-8-jre-headless: Add Breaks: tzdata-java to ensure openjdk gets + upgraded on dist-upgrades from jessie. (Closes: #857992) + + -- Andreas Beckmann <anbe@debian.org> Tue, 18 Apr 2017 22:32:33 +0200 + +openjdk-8 (8u121-b13-4) unstable; urgency=medium + + * Drop Recommends on obsolete GNOME libraries so they are not in a + default GNOME desktop installation (Simon McVittie). Closes: #850268. + - sun.net.spi.DefaultProxySelector prefers libglib2.0-0 (>= 2.24) + over obsolete libgconf2-4. + - sun.nio.fs.GnomeFileTypeDetector prefers libglib2.0-0 (>= 2.24) + over libgnomevfs-2-0. + - sun.xawt.awt_Desktop prefers libgtk2.0-0 (>= 2.14) over + libgnomevfs2-0. + * See the bug report for an analysis why this can be done for releases + back to Debian wheezy (7.0) and Ubuntu precise (12.04 LTS). + + -- Matthias Klose <doko@ubuntu.com> Fri, 03 Mar 2017 18:46:54 +0100 + +openjdk-8 (8u121-b13-3) unstable; urgency=medium + + * Really don't build the JamVM VM. + * Fix 8164293: HotSpot leaking memory in long-running requests. + Closes: #853758. + * Add OpenJDK Stack Unwinder and Frame Decorator for gdb. + + -- Matthias Klose <doko@ubuntu.com> Wed, 08 Feb 2017 07:24:13 +0100 + +openjdk-8 (8u121-b13-2) unstable; urgency=medium + + * Fix libjpeg dependency. Closes: #852378. + + -- Matthias Klose <doko@ubuntu.com> Tue, 24 Jan 2017 14:22:36 +0100 + +openjdk-8 (8u121-b13-1) unstable; urgency=high + + * Update to 8u121-b13, Hotspot 8u112-b16 for AArch64. + + [ Matthias Klose ] + * Build using the default flags (POWER8) on ppc64el. + * Add a breaks for ca-certificates-java (<< 20160321~). Closes: #851667. + * Stop building JamVM for the stretch release, the VM is not working + with recent OpenJDK 8 updates. Closes: #841229, #842132. + * Fix location of jspawnhelper for KFreeBSD. Closes: #851053. + + [ Tiago Stürmer Daitx ] + * debian/rules: add -O3 to DEB_CFLAGS_MAINT_STRIP and + DEB_CXXFLAGS_MAINT_STRIP for dpkg_buildflags_jdk and + dpkg_buildflags_hs as ppc64le has -O3 by default. LP: #1640845. + * Update to 8u121-b13, including security fixes. + - S8165344, CVE-2017-3272: A protected field can be leveraged into type + confusion. + - S8167104, CVE-2017-3289: Custom class constructor code can bypass the + required call to super.init allowing for uninitialized objects to be + created. + - S8156802, CVE-2017-3241: RMI deserialization should limit the types + deserialized to prevent attacks that could escape the sandbox. + - S8164143, CVE-2017-3260: It is possible to corrupt memory by calling + dispose() on a CMenuComponentmultiple times. + - S8168714, CVE-2016-5546: ECDSA will accept signatures that have various + extraneous bytes added to them whereas the signature is supposed to be + unique. + - S8166988, CVE-2017-3253: The PNG specification allows the [iz}Txt + sections to be 2^32-1 bytes long so these should not be uncompressed + unless the user explicitly requests it. + - S8168728, CVE-2016-5548: DSA signing exhibits a timing bias that may + leak information about k. + - S8168724, CVE-2016-5549: ECDSA signing exhibits a timing bias that may + leak information about k. + - S8161743, CVE-2017-3252: LdapLoginModule incorrectly tries to + deserialize responses from an LDAP server when an LDAP context is + expected. + - S8167223, CVE-2016-5552: Parsing of URLs can be inconsistent with how + users or external applications would interpret them leading to possible + security issues. + - S8168705, CVE-2016-5547: A value from an InputStream is read directly + into the size argument of a new byte[] without validation. + - S8164147, CVE-2017-3261: An integer overflow exists in + SocketOutputStream which can lead to memorydisclosure. + - S8151934, CVE-2017-3231: Under some circumstances URLClassLoader will + dispatch HTTP GET requests where the invoker does not have permission. + - S8165071, CVE-2016-2183: 3DES can be exploited for block collisions when + long running sessions are allowed. + * d/p/8132051-zero.diff: Superseeded by upstream fix S8154210; removed. + * d/p/hotspot-JDK-8158260-ppc64el.patch: Applied upstream; removed. + * d/p/6926048.diff: Already applied upstream; removed. + * d/p/jdk-ppc64el-S8170153.patch, d/p/openjdk-ppc64el-S8170153.patch: Improve + StrictMath performance on ppc64el. LP: #1646927. + * d/p/jdk-841269-filechooser.patch: Fix FileChooser behavior when displaying + links to non-existant files. Closes: #841269. + * Refreshed various patches. + + -- Matthias Klose <doko@ubuntu.com> Mon, 23 Jan 2017 11:03:55 +0100 + +openjdk-8 (8u111-b14-3) unstable; urgency=high + + [ Tiago Stürmer Daitx ] + * Remove cacao references, updated jtreg tests to use agentvm and auto + concurrency. + * Run the jtreg tests on autopkg testing. + + -- Matthias Klose <doko@ubuntu.com> Wed, 02 Nov 2016 20:05:41 +0100 + +openjdk-8 (8u111-b14-2) unstable; urgency=high + + * Apply the kfreebsd patches conditionally. + + -- Matthias Klose <doko@ubuntu.com> Wed, 19 Oct 2016 21:26:28 +0200 + +openjdk-8 (8u111-b14-1) unstable; urgency=high + + * Update to 8u111-b14, including security fixes. + - CVE-2016-5568, S8158993: Service Menu services. + - CVE-2016-5582, S8160591: Improve internal array handling. + - CVE-2016-5573, S8159519: Reformat JDWP messages. + - CVE-2016-5597, S8160838: Better HTTP service. + - CVE-2016-5554, S8157739: Classloader Consistency Checking. + - CVE-2016-5542, S8155973: Tighten jar checks. + * Enable hotspot builds for sparc64. Closes: #835973. + + -- Matthias Klose <doko@ubuntu.com> Wed, 19 Oct 2016 19:02:13 +0200 + +openjdk-8 (8u102-b14.1-2) unstable; urgency=medium + + * Fix build failure with GCC 6. Closes: #811694. + * Fix JamVM, lacking JVM_GetResourceLookupCacheURLs (Xerxes RÃ¥nby). + Closes: #826206. + * Explicitly build using GCC 6. + + -- Matthias Klose <doko@ubuntu.com> Sat, 06 Aug 2016 10:12:09 +0200 + +openjdk-8 (8u102-b14.1-1) unstable; urgency=medium + + * Use the 8u101 tarballs instead of the 8u102 tarballs (inventing a fake + version number). + + -- Matthias Klose <doko@ubuntu.com> Mon, 01 Aug 2016 16:31:18 +0200 + +openjdk-8 (8u102-b14-2) unstable; urgency=medium + + * Update AArch64 and KFreeBSD patches. + + -- Matthias Klose <doko@ubuntu.com> Tue, 26 Jul 2016 13:00:12 +0200 + +openjdk-8 (8u102-b14-1) unstable; urgency=medium + + * Update to 8u101-b14, including security fixes: + * IIOP Input Stream Hooking. CVE-2016-3458: + defaultReadObject is not forbidden in readObject in subclasses of + InputStreamHook which provides leverage to deserialize malicious objects + if a reference to the input stream can be obtained separately. + * Complete name checking. S8148872, CVE-2016-3500: + In some cases raw names in XML data are not checked for length limits + allowing for DoS attacks. + * Better delineation of XML processing. S8149962, CVE-2016-3508: + Denial of service measures do not take newline characters into account. + This can be used to conduct attacks like the billion laughs DoS. + * Coded byte streams. S8152479, CVE-2016-3550: + A fuzzed class file triggers an integer overflow in array access. + * Clean up lookup visibility. S8154475, CVE-2016-3587: + A fast path change allowed access to MH.invokeBasic via the public lookup + object. MH.iB does not do full type checking which can be used to create + type confusion. + * Bolster bytecode verification. S8155981, CVE-2016-3606: + The bytecode verifier checks that any classes' <init> method calls + super.<init> before returning. There is a way to bypass this requirement + which allows creating subclasses of classes that are not intended to be + extended. + * Persistent Parameter Processing. S8155985, CVE-2016-3598: + TOCTOU issue with types List passed into dropArguments() which can be used + to cause type confusion. + * Additional method handle validation. S8158571, CVE-2016-3610: + MHs.filterReturnValue does not check the filter parameter list size. + The single expected parameter is put in the last parameter position for + the filter MH allowing for type confusion. + * Enforce GCM limits. S8146514: + In GCM the counter should not be allowed to wrap (per the spec), since that + plus exposing the encrypted data could lead to leaking information. + * Construction of static protection domains. S8147771: + SubjectDomainCombiner does not honor the staticPermission field and will + create ProtectionDomains that vary with the system policy which may allow + unexpected permission sets. + * Share Class Data. S8150752: + Additional verification of AppCDS archives is required to prevent an + attacker from creating a type confusion situation. + * Enforce update ordering. S8149070: + If the GCM methods update() and updateAAD() are used out of order, the + security of the system can be weakened and an exception should be thrown + to warn the developer. + * Constrain AppCDS behavior. S8153312: + AppCDS does not create classloader constraints upon reloading classes + which could allow class spoofing under some circumstances. + + -- Matthias Klose <doko@ubuntu.com> Fri, 24 Jun 2016 14:49:34 +0200 + +openjdk-8 (8u91-b14-3) unstable; urgency=medium + + * Fix an issue with libatk-wrapper (Samuel Thibault). Closes: #827795. + * Update the KFreeBSD support patch (Steven Chamberlain). Closes: #825514. + * debian/patches/hotspot-JDK-8158260-ppc64el.patch: JDK-8158260, PPC64: + unaligned Unsafe.getInt can lead to the generation of illegal + instructions (Tiago Stürmer Daitx). LP: #1594393. + + -- Matthias Klose <doko@ubuntu.com> Fri, 24 Jun 2016 14:49:34 +0200 + +openjdk-8 (8u91-b14-2ubuntu1) yakkety; urgency=medium + + * Disable the atk bridge again on Ubuntu yakkety (failing TCK tests). + + -- Matthias Klose <doko@ubuntu.com> Mon, 25 Apr 2016 17:44:32 +0200 + +openjdk-8 (8u91-b14-2) unstable; urgency=medium + + * Set initial VMThreadStackSize to 1600 on s390x. + + -- Matthias Klose <doko@ubuntu.com> Fri, 22 Apr 2016 23:21:34 +0200 + +openjdk-8 (8u91-b14-1) unstable; urgency=high + + * Drop unused g++-4.9 build dependency. + + -- Matthias Klose <doko@ubuntu.com> Thu, 21 Apr 2016 17:03:22 +0200 + +openjdk-8 (8u91-b14-0ubuntu4) xenial; urgency=medium + + * Update to 8u91-b14. + - Addresses CVE-2016-0686 (S8129952), CVE-2016-0687 (S8132051), + CVE-2016-3427 (S8144430), CVE-2016-0695 (S8138593), + CVE-2016-3425 (S8143167), CVE-2016-3426 (S8143945). + * Backport parts of 8132051 and 6926048 to fix the zero builds. + * Add a versioned break to the oracle-java8-installer package. The + package inflates the priority of the java alternatives again. See + https://lists.ubuntu.com/archives/ubuntu-devel/2016-April/039324.html. + + -- Matthias Klose <doko@ubuntu.com> Thu, 21 Apr 2016 16:25:37 +0200 + +openjdk-8 (8u77-b03-3ubuntu4) xenial; urgency=medium + + * Fix setting the update version (77). LP: #1550244. + * Really re-enable running the tests. + + -- Matthias Klose <doko@ubuntu.com> Wed, 20 Apr 2016 11:28:13 +0200 + +openjdk-8 (8u77-b03-3ubuntu3) xenial; urgency=medium + + * Build-depend on jtreg again, run the tests during the build. + + -- Matthias Klose <doko@ubuntu.com> Wed, 13 Apr 2016 19:17:37 +0200 + +openjdk-8 (8u77-b03-3ubuntu2) xenial; urgency=medium + + * Fix stripping the libjvm.so files. + + -- Matthias Klose <doko@ubuntu.com> Wed, 06 Apr 2016 13:41:39 +0200 + +openjdk-8 (8u77-b03-3ubuntu1) xenial; urgency=medium + + * Regenerate the control file. + + -- Matthias Klose <doko@ubuntu.com> Fri, 01 Apr 2016 20:40:42 +0200 + +openjdk-8 (8u77-b03-3) unstable; urgency=medium + + * Configure with --with-milestone and --with-user-release-suffix. + * Fix binary-indep only build. Closes: #819618. + + -- Matthias Klose <doko@ubuntu.com> Fri, 01 Apr 2016 18:31:13 +0200 + +openjdk-8 (8u77-b03-2) unstable; urgency=medium + + * Don't configure with --disable-precompiled-headers on arm64. + + -- Matthias Klose <doko@ubuntu.com> Thu, 31 Mar 2016 01:12:20 +0200 + +openjdk-8 (8u77-b03-1) unstable; urgency=medium + + * Update to 8u77-b03. + - Addresses CVE-2016-0636: Improve MethodHandle consistency. + * Build-depend on openjdk-8-jdk-headless <cross>. + * Disable the atk bridge again on Ubuntu xenial (failing TCK tests). + * Use versioned Build-Depends on autoconf (>= 2.69). Closes: #818626. + * Stop providing java-runtime, java-runtine-headless, java-compiler. + Closes: #815475. + * Fix logic for libgnome/libgconf recommendations. Closes: #813943. + + -- Matthias Klose <doko@ubuntu.com> Wed, 30 Mar 2016 00:10:38 +0200 + +openjdk-8 (8u72-b15-4) unstable; urgency=medium + + * Regenerate the control file. + + [ Aurelian Jarno ] + * Reapply patch to fix jamvm on mips*, lost in version 8u72-b15-1. + * Build jamvm again on mips and mipsel. + * Build with GCC 5 on mips*. + + -- Matthias Klose <doko@ubuntu.com> Thu, 25 Feb 2016 14:20:49 +0100 + +openjdk-8 (8u72-b15-3) unstable; urgency=medium + + * Split out an openjdk-8-jdk-headless package. + * Don't run the tests on Ubuntu xenial (openjdk-8 now in main, + jtreg in universe). + * Recognize -dcevm as a jvm. Closes: #814421. + * Update libgconf/libgnome jre recommendations. Closes: #813943. + * Update package reference in README. Closes: #814605. + * Add french translation for policytool desktop file. Addresses: #813851. + * Install app icons again. + + -- Matthias Klose <doko@ubuntu.com> Thu, 25 Feb 2016 12:04:29 +0100 + +openjdk-8 (8u72-b15-2) unstable; urgency=medium + + * Bump the priority for OpenJDK 8 as the default. + * Stop building jamvm on mips and mipsel, fails to build. + + -- Matthias Klose <doko@ubuntu.com> Fri, 05 Feb 2016 17:31:08 +0100 + +openjdk-8 (8u72-b15-1) unstable; urgency=medium + + * Update to 8u72-b15. + - Addresses CVE-2016-0483 (8139017), CVE-2016-0494 (8140543), + CVE-2015-8126 (8143941), CVE-2016-0475 (8138589), + CVE-2016-0402 (8059054), CVE-2016-0466 (8133962), + CVE-2016-0448 (8130710), CVE-2015-7575 (8144773). + * Apply proposed patch for JDK-8141491: Unaligned memory access in Bits.c. + * Fix zero on m68k, introduced by 8046246 (patch suggested by Michael Karcher). + + -- Matthias Klose <doko@ubuntu.com> Fri, 22 Jan 2016 11:03:19 +0100 + +openjdk-8 (8u72-b05-5) unstable; urgency=medium + + * Fix applying patches on arm64. + * Hack around the split KFreeBSD personality. + + -- Matthias Klose <doko@ubuntu.com> Tue, 15 Dec 2015 07:49:25 +0100 + +openjdk-8 (8u72-b05-4) unstable; urgency=medium + + * openjdk-8-jdk: Fix typo in sdk provides. Addresses: #803150. + * Fix cross builds. + * Build again using GCC 4.9 on mips*, fails to build with GCC 5. + + -- Matthias Klose <doko@ubuntu.com> Mon, 14 Dec 2015 21:54:43 +0100 + +openjdk-8 (8u72-b05-3) unstable; urgency=medium + + * Fix stripping packages (use bash instead of expr substring, Roderich + Schupp). Closes: #806421. + * Fix StackOverflowError on Zero JVM initialization on non x86 platforms, + when built with GCC 5. + * Build with GCC 5 everywhere. + * Build using giflib 5. + + -- Matthias Klose <doko@ubuntu.com> Mon, 30 Nov 2015 06:22:36 +0100 + +openjdk-8 (8u72-b05-2) unstable; urgency=medium + + * Update configury for sparc64 (Steven Chamberlain). Closes: #806202. + + -- Matthias Klose <doko@ubuntu.com> Thu, 26 Nov 2015 21:34:53 +0100 + +openjdk-8 (8u72-b05-1) unstable; urgency=medium + + * Update to 8u72-b05. + * Strip packages again, Debian infrastruction is fixed. Closes: #775760. + + -- Matthias Klose <doko@ubuntu.com> Sat, 31 Oct 2015 02:40:57 +0100 + +openjdk-8 (8u66-b17-1) unstable; urgency=high + + * Update to 8u66-b17. + * Security fixes: + - S8048030, CVE-2015-4734: Expectations should be consistent + - S8068842, CVE-2015-4803: Better JAXP data handling + - S8076339, CVE-2015-4903: Better handling of remote object invocation + - S8076383, CVE-2015-4835: Better CORBA exception handling + - S8076387, CVE-2015-4882: Better CORBA value handling + - S8076392, CVE-2015-4881: Improve IIOPInputStream consistency + - S8076413, CVE-2015-4883: Better JRMP message handling + - S8078427, CVE-2015-4842: More supportive home environment + - S8078440: Safer managed types + - S8080541: More direct property handling + - S8080688, CVE-2015-4860: Service for DGC services + - S8081744, CVE-2015-4868: Clear out list corner case + - S8081760: Better group dynamics + - S8086092. CVE-2015-4840: More palette improvements + - S8086733, CVE-2015-4893: Improve namespace handling + - S8087350: Improve array conversions + - S8103671, CVE-2015-4805: More objective stream classes + - S8103675: Better Binary searches + - S8129611: Accessbridge error handling improvement + - S8130078, CVE-2015-4911: Document better processing + - S8130185: More accessible access switch + - S8130193, CVE-2015-4806: Improve HTTP connections + - S8130864: Better server identity handling + - S8130891, CVE-2015-4843: (bf) More direct buffering + - S8131291, CVE-2015-4872: Perfect parameter patterning + - S8132042, CVE-2015-4844: Preserve layout presentation + * Strip packages again, Debian infrastruction is fixed. Closes: #775760. + + -- Matthias Klose <doko@ubuntu.com> Wed, 21 Oct 2015 22:48:28 +0200 + +openjdk-8 (8u66-b01-6) unstable; urgency=medium + + * Fix pulseaudio build on KFreeBSD. + + -- Matthias Klose <doko@ubuntu.com> Thu, 15 Oct 2015 02:07:13 +0200 + +openjdk-8 (8u66-b01-5) unstable; urgency=medium + + * Backport the proposed patch for 8036767, renaming the architecture + on ppc64el from ppc64 to ppc64le. + * JDK-8073139: PPC64: User-visible arch directory and os.arch value on + ppc64le cause issues with Java tooling (Tiago Stürmer Daitx). + + -- Matthias Klose <doko@ubuntu.com> Thu, 08 Oct 2015 08:03:51 +0200 + +openjdk-8 (8u66-b01-4) unstable; urgency=medium + + * Update KFreeBSD patches (Steven Chamberlain). Closes: #761067. + * Really fix preprocessor defines for alpha and sh4. + * Re-enable the partial stripping for the jre packages. + * openjdk-jre-headless: Directly depend on libfontconfig1. Closes: #793210. + + -- Matthias Klose <doko@ubuntu.com> Sun, 13 Sep 2015 13:04:03 +0200 + +openjdk-8 (8u66-b01-3) unstable; urgency=medium + + * Build using GCC 4.9 for zero ports. + + -- Matthias Klose <doko@ubuntu.com> Sat, 05 Sep 2015 16:06:38 +0200 + +openjdk-8 (8u66-b01-2) unstable; urgency=medium + + * Fix installing the openjdk.desktop file when cautious-launch is available. + LP: #1448548. + * Define _alpha_ / _sh_ preprocessor macros instead of alpha / sh. + * Fix jdk gensrc build on x32. + * Re-enable the atk bridge for releases with a fixed atk bridge. + * Really apply the 32bit detection patch. Closes: #787072. + * Make derivatives builds the same as the parent distro. Closes: #797665. + * Add m68k support for Zero (Andreas Schwab). + * Sort the enums and the annotations in the package-tree.html files. + + -- Matthias Klose <doko@ubuntu.com> Fri, 04 Sep 2015 18:49:13 +0200 + +openjdk-8 (8u66-b01-1) unstable; urgency=medium + + * Update to 8u66-b01. + * Fix jdk build on x32. + + -- Matthias Klose <doko@ubuntu.com> Mon, 27 Jul 2015 13:46:58 +0200 + +openjdk-8 (8u60~b22-1) unstable; urgency=medium + + * Update to 8u60-b22. + * Don't use solaris compiler flags for linux sparc builds. Closes: #790370. + + -- Matthias Klose <doko@ubuntu.com> Mon, 22 Jun 2015 22:15:22 +0200 + +openjdk-8 (8u45-b14-4) unstable; urgency=medium + + * Fix 32bit detection for the build jdk; try to build again for mips + and mipsel (James Cowgill). Closes: #787072. + * Fix 8074312, enable hotspot builds on 4.x Linux kernels. Closes: #786417. + * openjdk-jre-headless: Add dependency on the package containing the + mountpoint binary. Closes: #787106. + + -- Matthias Klose <doko@ubuntu.com> Mon, 22 Jun 2015 22:15:22 +0200 + +openjdk-8 (8u45-b14-3) unstable; urgency=medium + + * Stop building for mips and mipsel. Addresses #785051. + * jdk: Fix freeNativeStringArray declaration. Closes: #785530. + + -- Matthias Klose <doko@ubuntu.com> Sun, 17 May 2015 16:13:11 +0200 + +openjdk-8 (8u45-b14-2) unstable; urgency=medium + + * Fix JamVM with 8u45. Closes: #766284. + + -- Matthias Klose <doko@ubuntu.com> Sun, 10 May 2015 19:28:41 +0200 + +openjdk-8 (8u45-b14-1) unstable; urgency=medium + + * Update to 8u45-b14. + * Update AArch64 to (post) 8u45-b14. + * Make libnss3-dev installable on precise (Thorsten Glaser). LP: #1411630. + * Only install the openjdk-java.desktop file when using cautious-launcher. + + -- Matthias Klose <doko@ubuntu.com> Sun, 19 Apr 2015 16:31:44 +0200 + +openjdk-8 (8u40-b27-1) unstable; urgency=medium + + * Update to 8u40-b27. + * Update AArch64 to (post) 8u40-b25. + * Fix libjavajpeg build using the system jpeg library. Closes: #760926. + + -- Matthias Klose <doko@ubuntu.com> Tue, 17 Mar 2015 01:19:45 +0100 + +openjdk-8 (8u40~b22-1ubuntu1) vivid; urgency=medium + + * Update AArch64 to 8u40-b22. + * Update the alpha float patch. + * Fix JDK-8067330, ZERO_ARCHDEF incorrectly defined for PPC/PPC64 + architectures. + * Fix JDK-8067331, Zero: Atomic::xchg and Atomic::xchg_ptr need + full memory barrier. + * Build using OpenJDK-8. + + -- Matthias Klose <doko@ubuntu.com> Tue, 27 Jan 2015 14:59:00 +0100 + +openjdk-8 (8u40~b22-1) unstable; urgency=medium + + * Update to 8u40-b22. + * Fix build on mips64 and mips64el. Closes: #776295. + * Don't strip libjvm.so to prevent rejection by ftp-master (work around, + but no fix in the archive). Addresses: #775760. + * Fix jamvm to work with recent security updates. Closes: #766284. + + -- Matthias Klose <doko@ubuntu.com> Mon, 26 Jan 2015 16:59:37 +0100 + +openjdk-8 (8u40~b21-1) unstable; urgency=medium + + * Update to 8u40-b21. + + -- Matthias Klose <doko@ubuntu.com> Thu, 15 Jan 2015 12:14:18 +0100 + +openjdk-8 (8u40~b10-1) unstable; urgency=medium + + * Fix libjpeg runtime dependency. + + -- Matthias Klose <doko@ubuntu.com> Thu, 16 Oct 2014 08:38:13 +0200 + +openjdk-8 (8u40~b09-1) unstable; urgency=medium + + * Update to 8u40-b09. + * Update the AArch64 hotspot to 8u40-b09. + * Allow to build for Ubuntu 12.04 LTS. + * Change B-D to libjpeg-dev to finish the transition to libjpeg-turbo + (OndÅ™ej Surý). Closes: #763490. + * Backport the fix for 8017773 OpenJDK returns incorrect TrueType + font metrics. Closes: #762323. + * Depend on libnss3 instead of libnss3-1d for recent releases. + Addresses: #760122. + + -- Matthias Klose <doko@ubuntu.com> Tue, 14 Oct 2014 12:39:18 +0200 + +openjdk-8 (8u40~b04-2) unstable; urgency=medium + + * Remove AArch64 patch applied upstream. + * Update the kfresbsd jdk patch, still not forwarded upstream. + + -- Matthias Klose <doko@ubuntu.com> Tue, 09 Sep 2014 17:08:32 +0200 + +openjdk-8 (8u40~b04-1) experimental; urgency=medium + + * Update to 8u40-b04. + * Backport 8050942, implement template interpreter for ppc64le. + * Build-depend on systemtap-sdt-dev. + + -- Matthias Klose <doko@ubuntu.com> Wed, 03 Sep 2014 21:11:27 +0200 + +openjdk-8 (8u20-b26-1) experimental; urgency=medium + + * 8u20 build 26 is the final 8u20 release. + * Update the AArch64 hotspot. + * Fix applying the kfreebsd patch for JamVM. + * x32 build fixes. + * Allow openjdk-8-jdk as an alternative build dependency. + * Adjust timeouts for jtreg runs. + + -- Matthias Klose <doko@ubuntu.com> Wed, 20 Aug 2014 10:34:55 +0200 + +openjdk-8 (8u20~b26-1) experimental; urgency=medium + + * Update to 8u20-b26. + * Update to JamVM 2.0.0. + * Update to IcedTea-Sound 1.0.1. + * Update toplevel configury to recognize zero archs alpha, mips*, + m68k, sh4. + * Update kfreebsd-support patches (Steven Chamberlain). + * Fix an uninitialized memory issue in adlc (Fridrich Strba). + * Move libjavagtk into the -jre package. + * Use the system libpcsclite library. + * Fix typo, ignoring boot cycle builds (Emmanuel Bourg). + * Derive the update version and the build number from the package + version (Emmanuel Bourg). + * Call quilt with --quiltrc -. Closes: #755710. + * openjdk-8-jdk: Fix src.zip symlink. Closes: #755869. + + -- Matthias Klose <doko@ubuntu.com> Thu, 31 Jul 2014 19:51:35 +0200 + +openjdk-8 (8u20~b20-2) experimental; urgency=medium + + * Work around OpenJDK's build system which is not robust enough + to accept commas in *FLAGS. + * Pass extra flags for non-hotspot builds. + * Fix the zero build on i386. + * Don't add extra symlinks for the jni_{md,jawt}.h header files. + + -- Matthias Klose <doko@ubuntu.com> Fri, 11 Jul 2014 20:30:54 +0200 + +openjdk-8 (8u20~b20-1) experimental; urgency=medium + + * Initial OpenJDK 8 packaging, based on 8u20-b20. + * Fix hotspot build system for GNU make 4.0 (Emmanuel Bourg). + * Drop rhino (build) dependencies (Emmanuel Bourg). + * Add java8 provides (Emmanuel Bourg). + * Add IcedTea patches to build with external jpeg, png and lcms + libraries (Emmanuel Bourg). + * Add keywords to the desktop files (Emmanuel Bourg). + * Remove the suggested dependency on sun-java6-fonts ((Emmanuel Bourg). + * Build hotspot on ppc64 and ppc64el. + * Add the IcedTea Sound tarball. + * Don't strip files when building the images. + * Update patches to pass the extra flags to the libsig and libsaproc builds. + * Use dh_strip's knowledge about build ids when available. + + -- Matthias Klose <doko@ubuntu.com> Wed, 09 Jul 2014 20:11:18 +0200 + +openjdk-7 (7u55-2.4.7-2) unstable; urgency=medium + + * Fix the quoting of configure flags for the zero build. + * Update the java-access-bridge-security patch (Raphael Geissert). + * Don't hard code the compiler names in the AArch64 hotspot build. + * Build using GCC 4.9 where available. + * Add MIPS64(el) support (Yunqiang Su). Closes: #746207. + * Suggest fonts-indic instead of ttf-indic-fonts. Closes: #747694. + + -- Matthias Klose <doko@ubuntu.com> Fri, 16 May 2014 19:12:42 +0200 + +openjdk-7 (7u55-2.4.7-1) unstable; urgency=high + + * IcedTea7 2.4.7 release. + * Security fixes + - S8023046: Enhance splashscreen support. + - S8025005: Enhance CORBA initializations. + - S8025010, CVE-2014-2412: Enhance AWT contexts. + - S8025030, CVE-2014-2414: Enhance stream handling. + - S8025152, CVE-2014-0458: Enhance activation set up. + - S8026067: Enhance signed jar verification. + - S8026163, CVE-2014-2427: Enhance media provisioning. + - S8026188, CVE-2014-2423: Enhance envelope factory. + - S8026200: Enhance RowSet Factory. + - S8026716, CVE-2014-2402: (aio) Enhance asynchronous channel handling. + - S8026736, CVE-2014-2398: Enhance Javadoc pages. + - S8026797, CVE-2014-0451: Enhance data transfers. + - S8026801, CVE-2014-0452: Enhance endpoint addressing. + - S8027766, CVE-2014-0453: Enhance RSA processing. + - S8027775: Enhance ICU code. + - S8027841, CVE-2014-0429: Enhance pixel manipulations. + - S8028385: Enhance RowSet Factory. + - S8029282, CVE-2014-2403: Enhance CharInfo set up. + - S8029286: Enhance subject delegation. + - S8029699: Update Poller demo. + - S8029730: Improve audio device additions. + - S8029735: Enhance service mgmt natives. + - S8029740, CVE-2014-0446: Enhance handling of loggers. + - S8029745, CVE-2014-0454: Enhance algorithm checking. + - S8029750: Enhance LCMS color processing (LCMS 2 only). + - S8029760, CVE-2013-6629: Enhance AWT image libraries (in-tree libjpeg). + - S8029844, CVE-2014-0455: Enhance argument validation. + - S8029854, CVE-2014-2421: Enhance JPEG decodings. + - S8029858, CVE-2014-0456: Enhance array copies. + - S8030731, CVE-2014-0460: Improve name service robustness. + - S8031330: Refactor ObjectFactory. + - S8031335, CVE-2014-0459: Better color profiling. + - S8031352, CVE-2013-6954: Enhance PNG handling (in-tree libpng). + - S8031394, CVE-2014-0457: (sl) Fix exception handling in ServiceLoader. + - S8031395: Enhance LDAP processing. + - S8032686, CVE-2014-2413: Issues with method invoke. + - S8033618, CVE-2014-1876: Correct logging output. + - S8034926, CVE-2014-2397: Attribute classes properly. + - S8036794, CVE-2014-0461: Manage JavaScript instances. + * AArch64 fixes. + + -- Matthias Klose <doko@ubuntu.com> Wed, 16 Apr 2014 15:37:40 +0200 + +openjdk-7 (7u51-2.4.6-1) unstable; urgency=medium + + * IcedTea7 2.4.6 release. + * Explicitly use AC_MAINTAINER_MODE and automake-1.11 to create the + debian .orig tarball. Addresses: #740289. + * Apply patch from upstream to fix bold fonts in Swing applications using + GTK L&F (Ryan Tandy). LP: #937200. + * Explicitly build-depend on libkrb5-dev. + * On AArch64 don't use the hotsport backport for the zero build. + + -- Matthias Klose <doko@ubuntu.com> Tue, 01 Apr 2014 09:25:19 +0200 + +openjdk-7 (7u51-2.4.6~pre1-1) unstable; urgency=medium + + * IcedTea7 2.4.6 prerelease. + * Fix icedtea-web build failure on kfreebsd-* (unable to find + sun.security.util.SecurityConstants). Steven Chamberlain. Closes: #739032. + * Update the AArch64 Hotspot. + + -- Matthias Klose <doko@ubuntu.com> Thu, 27 Mar 2014 17:24:45 +0100 + +openjdk-7 (7u51-2.4.5-2) unstable; urgency=medium + + * Update the KFreeBSD patch (Steven Chamberlain). Closes: #736291. + + -- Matthias Klose <doko@ubuntu.com> Tue, 04 Feb 2014 13:28:10 +0100 + +openjdk-7 (7u51-2.4.5-1) unstable; urgency=medium + + * IcedTea7 2.4.5 release. + * Build Hotspot client and server vms for AArch64. + + -- Matthias Klose <doko@ubuntu.com> Fri, 31 Jan 2014 06:13:20 -0500 + +openjdk-7 (7u51-2.4.4-1) unstable; urgency=medium + + * IcedTea7 2.4.4 release. + * Security fixes + - S6727821: Enhance JAAS Configuration. + - S7068126, CVE-2014-0373: Enhance SNMP statuses. + - S8010935: Better XML handling. + - S8011786, CVE-2014-0368: Better applet networking. + - S8021257, S8025022, CVE-2013-5896 : com.sun.corba.se.** should be + on restricted package list. + - S8021271, S8021266, CVE-2014-0408: Better buffering in ObjC code. + - S8022904: Enhance JDBC Parsers. + - S8022927: Input validation for byte/endian conversions. + - S8022935: Enhance Apache resolver classes. + - S8022945: Enhance JNDI implementation classes. + - S8023057: Enhance start up image display. + - S8023069, CVE-2014-0411: Enhance TLS connections. + - S8023245, CVE-2014-0423: Enhance Beans decoding. + - S8023301: Enhance generic classes. + - S8023338: Update jarsigner to encourage timestamping. + - S8023672: Enhance jar file validation. + - S8024302: Clarify jar verifications. + - S8024306, CVE-2014-0416: Enhance Subject consistency. + - S8024530: Enhance font process resilience. + - S8024867: Enhance logging start up. + - S8025014: Enhance Security Policy. + - S8025018, CVE-2014-0376: Enhance JAX-P set up. + - S8025026, CVE-2013-5878: Enhance canonicalization. + - S8025034, CVE-2013-5907: Improve layout lookups. + - S8025448: Enhance listening events. + - S8025758, CVE-2014-0422: Enhance Naming management. + - S8025767, CVE-2014-0428: Enhance IIOP Streams. + - S8026172: Enhance UI Management. + - S8026176: Enhance document printing. + - S8026193, CVE-2013-5884: Enhance CORBA stub factories. + - S8026204: Enhance auth login contexts. + - S8026417, CVE-2013-5910: Enhance XML canonicalization. + - S8026502: java/lang/invoke/MethodHandleConstants.java fails on all + platforms. + - S8027201, CVE-2014-0376: Enhance JAX-P set up. + - S8029507, CVE-2013-5893: Enhance JVM method processing. + - S8029533: REGRESSION: closed/java/lang/invoke/8008140/Test8008140.java + fails agains. + * Remove alpha from stage1_gcj_archs. + * Use the langtools and jdk tarballs as provided by IcedTea. + * Hotspot is dead on sparc. Build the zero interpreter as the default. + * Blindly update the KF***BSD patches. + + -- Matthias Klose <doko@ubuntu.com> Wed, 15 Jan 2014 10:34:34 +0100 + +openjdk-7 (7u45-2.4.3-5) unstable; urgency=medium + + * Run the jtreg tests on powerpcspe, tested by Roland Stigge. + * Fix zero builds on 64k page kernel configs. + * Fix more IcedTea bits to build on x32. + + -- Matthias Klose <doko@ubuntu.com> Sat, 11 Jan 2014 13:55:34 +0100 + +openjdk-7 (7u45-2.4.3-4) unstable; urgency=low + + * Re-enable running the testsuite on powerpc. + * Run the testsuite on AArch64. + * Fix IcedTea bits to build on x32. + + -- Matthias Klose <doko@ubuntu.com> Sun, 22 Dec 2013 21:20:10 +0100 + +openjdk-7 (7u45-2.4.3-3) unstable; urgency=low + + * Don't build on s390 anymore. + * Update hotspot-mips-align patch (Aurelien Jarno). Closes: #732528). + * Build for ppc64el. + * Try to build zero on x32. + * Configure with --enable-zero on sparc and sparc64. + + -- Matthias Klose <doko@ubuntu.com> Fri, 20 Dec 2013 14:42:38 +0100 + +openjdk-7 (7u45-2.4.3-2.3) unstable; urgency=medium + + * Disable bootstrap build on alpha. Closes: #719671. + * Disable running the jdk jtreg tests on the hotspot architectures. + Hanging on the buildds. + * Re-enable the jexec patch, program logic confused by running jexec + outside the assumed java home. Closes: #731961. + * Don't apply the s390 patches on s390x. s390 is successfully dead. + * Fix zero builds on little endian architectures, taken from the trunk. + + -- Matthias Klose <doko@ubuntu.com> Thu, 12 Dec 2013 18:24:44 +0100 + +openjdk-7 (7u45-2.4.3-1) unstable; urgency=medium + + * IcedTea7 2.4.3 release. + * Security fixes: + - S8006900, CVE-2013-3829: Add new date/time capability. + - S8008589: Better MBean permission validation. + - S8011071, CVE-2013-5780: Better crypto provider handling. + - S8011081, CVE-2013-5772: Improve jhat. + - S8011157, CVE-2013-5814: Improve CORBA portablility. + - S8012071, CVE-2013-5790: Better Building of Beans. + - S8012147: Improve tool support. + - S8012277: CVE-2013-5849: Improve AWT DataFlavor. + - S8012425, CVE-2013-5802: Transform TransformerFactory. + - S8013503, CVE-2013-5851: Improve stream factories. + - S8013506: Better Pack200 data handling. + - S8013510, CVE-2013-5809: Augment image writing code. + - S8013514: Improve stability of cmap class. + - S8013739, CVE-2013-5817: Better LDAP resource management. + - S8013744, CVE-2013-5783: Better tabling for AWT. + - S8014085: Better serialization support in JMX classes. + - S8014093, CVE-2013-5782: Improve parsing of images. + - S8014098: Better profile validation. + - S8014102, CVE-2013-5778: Improve image conversion. + - S8014341, CVE-2013-5803: Better service from Kerberos servers. + - S8014349, CVE-2013-5840: (cl) Class.getDeclaredClass problematic + in some class loader configurations. + - S8014530, CVE-2013-5825: Better digital signature processing. + - S8014534: Better profiling support. + - S8014987, CVE-2013-5842: Augment serialization handling. + - S8015614: Update build settings. + - S8015731: Subject java.security.auth.subject to improvements. + - S8015743, CVE-2013-5774: Address internet addresses. + - S8016256: Make finalization final. + - S8016653, CVE-2013-5804: javadoc should ignore ignoreable characters + in names. + - S8016675, CVE-2013-5797: Make Javadoc pages more robust. + - S8017196, CVE-2013-5850: Ensure Proxies are handled appropriately. + - S8017287, CVE-2013-5829: Better resource disposal. + - S8017291, CVE-2013-5830: Cast Proxies Aside. + - S8017298, CVE-2013-4002: Better XML support. + - S8017300, CVE-2013-5784: Improve Interface Implementation. + - S8017505, CVE-2013-5820: Better Client Service. + - S8019292: Better Attribute Value Exceptions. + - S8019617: Better view of objects. + - S8020293: JVM crash. + - S8021275, CVE-2013-5805: Better screening for ScreenMenu. + - S8021282, CVE-2013-5806: Better recycling of object instances. + - S8021286: Improve MacOS resourcing. + - S8021290, CVE-2013-5823: Better signature validation. + - S8022931, CVE-2013-5800: Enhance Kerberos exceptions. + - S8022940: Enhance CORBA translations. + - S8023683: Enhance class file parsing. + * Fix build failure on mips* (Aurelien Jarno). Closes: #729448). + * Run autoreconf. Closes: #724083. + * Merge the -jre-lib package into -jre-headless. Simplifies the packaging + and the savings were not as big as wanted, because the rt.jar is still + architecture dependant. Closes: #641049, #722510. + + -- Matthias Klose <doko@ubuntu.com> Sun, 08 Dec 2013 23:22:06 +0100 + +openjdk-7 (7u25-2.3.12-4ubuntu3) saucy; urgency=low + + * Apply missing patch to fix arm64/AArch64 detection. + + -- Matthias Klose <doko@ubuntu.com> Fri, 11 Oct 2013 17:51:33 +0200 + +openjdk-7 (7u25-2.3.12-4ubuntu2) saucy; urgency=low + + * openjdk-jre-headless: Loosen the dependency on -jre-lib. + + -- Matthias Klose <doko@ubuntu.com> Wed, 09 Oct 2013 16:29:15 +0200 + +openjdk-7 (7u25-2.3.12-4ubuntu1) saucy; urgency=low + + * Regenerate the control file. + + -- Matthias Klose <doko@ubuntu.com> Fri, 16 Aug 2013 12:09:47 +0200 + +openjdk-7 (7u25-2.3.12-4) unstable; urgency=low + + * Add the hotspot patches for AArch64, which apparently were not + included in the IcedTea release by intent. + * Don't interpret arm64 as an ARM architecture, but as AArch64. So + much for Debian calling this port arm64 ... + * Use host macros instead of build macros for corba and hotspot config. + * Re-add multiarch library directories to the default library path. + Closes: #712567. + * Enable the two-stage build on alpha. Closes: #719671. + * Build for powerpcspe (Roland Stigge). Closes: #712686. + * Recommend fonts-dejavu-extra instead of ttf-dejavu-extra for current + releases. Closes: #718839. + + -- Matthias Klose <doko@ubuntu.com> Thu, 15 Aug 2013 21:26:51 +0200 + +openjdk-7 (7u25-2.3.12-3) unstable; urgency=low + + * Fix kFreeBSD builds (Thanks to Christoph Egger for his help). + + -- Damien Raude-Morvan <drazzib@debian.org> Mon, 12 Aug 2013 00:39:41 +0200 + +openjdk-7 (7u25-2.3.12-2) unstable; urgency=low + + [ Matthias Klose ] + * Regenerate the hotspot-s390 patch. + + [ Damien Raude-Morvan ] + * Update kfreebsd patches. + + -- Matthias Klose <doko@ubuntu.com> Sat, 03 Aug 2013 20:22:41 +0200 + +openjdk-7 (7u25-2.3.12-1) unstable; urgency=low + + * IcedTea7 2.3.12 release. + * Don't build with pulseaudio on arm64. + * Disable bootstraped build on s390 and sparc. + + -- Matthias Klose <doko@ubuntu.com> Fri, 02 Aug 2013 15:55:01 +0200 + +openjdk-7 (7u25-2.3.10-2ubuntu1) saucy; urgency=low + + * Regenerate the control file. + + -- Matthias Klose <doko@ubuntu.com> Mon, 15 Jul 2013 23:59:45 +0200 + +openjdk-7 (7u25-2.3.10-2) unstable; urgency=low + + [ Matthias Klose ] + * Fix gcj-jdk build dependency on ia64 and s390. + * Build zero on arm64. + + [ Gianfranco Costamagna ] + * Fix build failure on kfreebsd (Closes: #714528) + + -- Matthias Klose <doko@ubuntu.com> Sun, 30 Jun 2013 17:12:28 +0200 + +openjdk-7 (7u25-2.3.10-1) unstable; urgency=high + + * IcedTea7 2.3.10 release. + * Security fixes + * S6741606, CVE-2013-2407: Integrate Apache Santuario. + * S7158805, CVE-2013-2445: Better rewriting of nested subroutine calls. + * S7170730, CVE-2013-2451: Improve Windows network stack support. + * S8000638, CVE-2013-2450: Improve deserialization. + * S8000642, CVE-2013-2446: Better handling of objects for transportation. + * S8001032: Restrict object access. + * S8001033, CVE-2013-2452: Refactor network address handling in virtual + machine identifiers. + * S8001034, CVE-2013-1500: Memory management improvements. + * S8001038, CVE-2013-2444: Resourcefully handle resources. + * S8001043: Clarify definition restrictions. + * S8001308: Update display of applet windows. + * S8001309: Better handling of annotation interfaces. + * S8001318, CVE-2013-2447: Socket.getLocalAddress not consistent with + InetAddress.getLocalHost. + * S8001330, CVE-2013-2443: Improve on checking order (non-Zero builds only). + * S8003703, CVE-2013-2412: Update RMI connection dialog box. + * S8004288, CVE-2013-2449: (fs) Files.probeContentType problems. + * S8004584: Augment applet contextualization. + * S8005007: Better glyph processing. + * S8006328, CVE-2013-2448: Improve robustness of sound classes. + * S8006611: Improve scripting. + * S8007467: Improve robustness of JMX internal APIs. + * S8007471: Improve MBean notifications. + * S8007812, CVE-2013-2455: (reflect) Class.getEnclosingMethod problematic for some classes. + * S8007925: Improve cmsStageAllocLabV2ToV4curves. + * S8007926: Improve cmsPipelineDup. + * S8007927: Improve cmsAllocProfileSequenceDescription. + * S8007929: Improve CurvesAlloc. + * S8008120, CVE-2013-2457: Improve JMX class checking. + * S8008124, CVE-2013-2453: Better compliance testing. + * S8008128: Better API coherence for JMX. + * S8008132, CVE-2013-2456: Better serialization support. + * S8008585: Better JMX data handling. + * S8008593: Better URLClassLoader resource management. + * S8008603: Improve provision of JMX providers. + * S8008607: Better input checking in JMX. + * S8008611: Better handling of annotations in JMX. + * S8008615: Improve robustness of JMX internal APIs. + * S8008623: Better handling of MBeanServers. + * S8008744, CVE-2013-2407: Rework part of fix for JDK-6741606. + * S8008982: Adjust JMX for underlying interface changes. + * S8009004: Better implementation of RMI connections. + * S8009008: Better manage management-api. + * S8009013: Better handling of T2K glyphs. + * S8009034: Improve resulting notifications in JMX. + * S8009038: Improve JMX notification support. + * S8009057, CVE-2013-2448: Improve MIDI event handling. + * S8009067: Improve storing keys in KeyStore. + * S8009071, CVE-2013-2459: Improve shape handling. + * S8009235: Improve handling of TSA data. + * S8009424, CVE-2013-2458: Adapt Nashorn to JSR-292 implementation change. + * S8009554, CVE-2013-2454: Improve SerialJavaObject.getFields. + * S8009654: Improve stability of cmsnamed. + * S8010209, CVE-2013-2460: Better provision of factories. + * S8011243, CVE-2013-2470: Improve ImagingLib. + * S8011248, CVE-2013-2471: Better Component Rasters. + * S8011253, CVE-2013-2472: Better Short Component Rasters. + * S8011257, CVE-2013-2473: Better Byte Component Rasters. + * S8012375, CVE-2013-1571: Improve Javadoc framing. + * S8012421: Better positioning of PairPositioning. + * S8012438, CVE-2013-2463: Better image validation. + * S8012597, CVE-2013-2465: Better image channel verification. + * S8012601, CVE-2013-2469: Better validation of image layouts. + * S8014281, CVE-2013-2461: Better checking of XML signature. + * S8015997: Additional improvement in Javadoc framing. + * Breaks icedtea-netx (<< 1.4-2). + + -- Matthias Klose <doko@debian.org> Fri, 28 Jun 2013 16:55:32 +0200 + +openjdk-7 (7u21-2.3.9-5) unstable; urgency=low + + * Update kFreeBSD support (Guido Guenther). Closes: #708818. + * Stop building the transitional cacao package for sid. + + -- Matthias Klose <doko@ubuntu.com> Sat, 18 May 2013 20:13:33 +0200 + +openjdk-7 (7u21-2.3.9-4) unstable; urgency=high + + * Build the transitional cacao package for sid as well. Apparently + some buildds are not updated to list wheezy as the code name for + the current distribution. + + -- Matthias Klose <doko@ubuntu.com> Thu, 02 May 2013 03:27:44 +0200 + +openjdk-7 (7u21-2.3.9-3) unstable; urgency=high + + * Disable the cacao build again, causing build failures on i386 and s390. + * Build a transitional cacao jre package instead. + + -- Matthias Klose <doko@ubuntu.com> Tue, 30 Apr 2013 00:27:05 +0200 + +openjdk-7 (7u21-2.3.9-2) unstable; urgency=high + + * On ia64, use gcj-4.7 for the bootstrap build. + * Drop the cacao jre from recommends to suggests. + * Re-enable cacao, was enabled in the 2.1.x series. + + -- Matthias Klose <doko@ubuntu.com> Sat, 27 Apr 2013 01:17:16 +0200 + +openjdk-7 (7u21-2.3.9-1) unstable; urgency=high + + * IcedTea7 2.3.9 release. + * Security fixes: + - S6657673, CVE-2013-1518: Issues with JAXP. + - S7200507: Refactor Introspector internals. + - S8000724, CVE-2013-2417: Improve networking serialization. + - S8001031, CVE-2013-2419: Better font processing. + - S8001040, CVE-2013-1537: Rework RMI model. + - S8001322: Refactor deserialization. + - S8001329, CVE-2013-1557: Augment RMI logging. + - S8003335: Better handling of Finalizer thread. + - S8003445: Adjust JAX-WS to focus on API. + - S8003543, CVE-2013-2415: Improve processing of MTOM attachments. + - S8004261: Improve input validation. + - S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames. + - S8004986, CVE-2013-2383: Better handling of glyph table. + - S8004987, CVE-2013-2384: Improve font layout. + - S8004994, CVE-2013-1569: Improve checking of glyph table. + - S8005432: Update access to JAX-WS. + - S8005943: (process) Improved Runtime.exec. + - S8006309: More reliable control panel operation. + - S8006435, CVE-2013-2424: Improvements in JMX. + - S8006790: Improve checking for windows. + - S8006795: Improve font warning messages. + - S8007406: Improve accessibility of AccessBridge. + - S8007617, CVE-2013-2420: Better validation of images. + - S8007667, CVE-2013-2430: Better image reading. + - S8007918, CVE-2013-2429: Better image writing. + - S8008140: Better method handle resolution. + - S8009049, CVE-2013-2436: Better method handle binding. + - S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap. + - S8009305, CVE-2013-0401: Improve AWT data transfer. + - S8009677, CVE-2013-2423: Better setting of setters. + - S8009699, CVE-2013-2421: Methodhandle lookup. + - S8009814, CVE-2013-1488: Better driver management. + - S8009857, CVE-2013-2422: Problem with plugin. + * Backports: + - S7130662: GTK file dialog crashes with a NPE. + * Bug fixes + - PR1363: Fedora 19 / rawhide FTBFS SIGILL. + - PR1401: Fix Zero build on 2.3.8. + - Fix offset problem in ICU LETableReference. + - Change -Werror fix to preserve OpenJDK default. + - PR1303: Correct #ifdef to #if. + - PR1404: Failure to bootstrap with ecj 4.2. + + -- Matthias Klose <doko@ubuntu.com> Mon, 22 Apr 2013 03:27:08 +0200 + +openjdk-7 (7u17-2.3.8-2) experimental; urgency=low + + * Remove Torsten Werner as uploader. + + -- Matthias Klose <doko@ubuntu.com> Mon, 01 Apr 2013 00:39:58 +0200 + +openjdk-7 (7u17-2.3.8-1ubuntu1) raring; urgency=low + + * Regenerate the control file. + + -- Matthias Klose <doko@ubuntu.com> Sun, 31 Mar 2013 20:10:05 +0200 + +openjdk-7 (7u17-2.3.8-1) experimental; urgency=low + + * IcedTea7 2.3.8 release. + * Security fixes: + - S8007014, CVE-2013-0809: Improve image handling. + - S8007675, CVE-2013-1493: Improve color conversion. + * Backports: + - S8002344: Krb5LoginModule config class does not return proper KDC list + from DNS. + - S8004344: Fix a crash in ToolkitErrorHandler() in XlibWrapper.c. + - S8006179: JSR292 MethodHandles lookup with interface using findVirtual(). + - S8006882: Proxy generated classes in sun.proxy package breaks JMockit. + * Bug fixes: + - PR1303: Correct #ifdef to #if. + - PR1340: Simplify the rhino class rewriter to avoid use of concurrency. + - Revert 7017193 and add the missing free call, until a better fix is ready. + + -- Matthias Klose <doko@ubuntu.com> Sun, 31 Mar 2013 14:31:11 +0200 + +openjdk-7 (7u15-2.3.7-1ubuntu2) raring; urgency=low + + * Security fixes: + - S8007014, CVE-2013-0809: Improve image handling + - S8007675, CVE-2013-1493: Improve color conversion + - debian/rules: updated to add 8007014.patch and 8007675.patch + + -- Jamie Strandboge <jamie@ubuntu.com> Wed, 06 Mar 2013 14:12:03 -0600 + +openjdk-7 (7u15-2.3.7-1ubuntu1) raring; urgency=low + + * Regenerate the control file. + + -- Matthias Klose <doko@ubuntu.com> Wed, 20 Feb 2013 23:59:54 +0100 + +openjdk-7 (7u15-2.3.7-1) experimental; urgency=low + + * IcedTea7 2.3.7 release. + * Security fixes: + - S8004937, CVE-2013-1484: Improve proxy construction. + - S8006439, CVE-2013-1485: Improve MethodHandles coverage. + - S8006446, CVE-2013-1486: Restrict MBeanServer access. + - S8006777, CVE-2013-0169: Improve TLS handling of invalid messages. + - S8007688: Blacklist known bad certificate. + * Backports: + - S8007393: Possible race condition after JDK-6664509. + - S8007611: logging behavior in applet changed. + * For zero builds, use the same hotspot version as in 2.1.6. + * Reenable bootstrap builds, except for alpha. + * Explicitly disable building on mips/mipsel. Not supported by the + Debian OpenJDK maintainers, the Debian mips porters, or the Debian + Java team. + + -- Matthias Klose <doko@ubuntu.com> Wed, 20 Feb 2013 23:33:58 +0100 + +openjdk-7 (7u13-2.3.6-1) experimental; urgency=low + + * IcedTea7 2.3.6 release. + - Disable bootstrap builds, currently broken in IcedTea. + * Security fixes: + - S6563318, CVE-2013-0424: RMI data sanitization. + - S6664509, CVE-2013-0425: Add logging context. + - S6664528, CVE-2013-0426: Find log level matching its name or value given + at construction time. + - S6776941: CVE-2013-0427: Improve thread pool shutdown. + - S7141694, CVE-2013-0429: Improving CORBA internals. + - S7173145: Improve in-memory representation of splashscreens. + - S7186945: Unpack200 improvement. + - S7186946: Refine unpacker resource usage. + - S7186948: Improve Swing data validation. + - S7186952, CVE-2013-0432: Improve clipboard access. + - S7186954: Improve connection performance. + - S7186957: Improve Pack200 data validation. + - S7192392, CVE-2013-0443: Better validation of client keys. + - S7192393, CVE-2013-0440: Better Checking of order of TLS Messages. + - S7192977, CVE-2013-0442: Issue in toolkit thread. + - S7197546, CVE-2013-0428: (proxy) Reflect about creating reflective proxies. + - S7200491: Tighten up JTable layout code. + - S7200500: Launcher better input validation. + - S7201064: Better dialogue checking. + - S7201066, CVE-2013-0441: Change modifiers on unused fields. + - S7201068, CVE-2013-0435: Better handling of UI elements. + - S7201070: Serialization to conform to protocol. + - S7201071, CVE-2013-0433: InetSocketAddress serialization issue. + - S8000210: Improve JarFile code quality. + - S8000537, CVE-2013-0450: Contextualize RequiredModelMBean class. + - S8000540, CVE-2013-1475: Improve IIOP type reuse management. + - S8000631, CVE-2013-1476: Restrict access to class constructor. + - S8001235, CVE-2013-0434: Improve JAXP HTTP handling. + - S8001242: Improve RMI HTTP conformance. + - S8001307: Modify ACC_SUPER behavior. + - S8001972, CVE-2013-1478: Improve image processing. + - S8002325, CVE-2013-1480: Improve management of images. + * Fix font suggestion for indic fonts in wheezy. + * Fix fontconfig definitions for japanese and korean fonts, fixing + compilation of the fontconfig file. + * Add Built-Using: rhino attribute for the -lib package. + * Don't use concurrent features to rewrite the rhino jar file. + * Enable class data sharing for the hotspot server VM. + + -- Matthias Klose <doko@ubuntu.com> Tue, 12 Feb 2013 20:59:48 +0100 + +openjdk-7 (7u9-2.3.4-1) experimental; urgency=low + + * IcedTea7 2.3.4 release. + * Security fixes + - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries. + - S8006017, CVE-2013-0422: Improve lookup resolutions. + - S8006125: Update MethodHandles library interactions. + * Bug fixes + - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit + shifts. + - G422525: Fix building with PaX enabled kernels. + + [ Matthias Klose ] + * Loosen OpenGL dependency. Closes: #695028. + * Fix error parsing drop files parameter from pcmanfm (Alberto Fernández + MartÃnez). Closes: #695992. + + [ Thorsten Glaser ] + * debian/rules: Use gcj-4.6-jdk for m68k builds. + * d/patches/text-relocations.patch: build with -fPIC on all archs. + + -- Matthias Klose <doko@ubuntu.com> Tue, 15 Jan 2013 23:38:48 +0100 + +openjdk-7 (7u9-2.3.3-1) experimental; urgency=low + + * Upload to experimental. + + -- Matthias Klose <doko@ubuntu.com> Wed, 17 Oct 2012 15:16:51 +0200 + +openjdk-7 (7u9-2.3.3-0ubuntu1) quantal-security; urgency=low + + * IcedTea7 2.3.3 release. + * Security fixes + - S6631398, CVE-2012-3216: FilePermission improved path checking. + - S7093490: adjust package access in rmiregistry. + - S7143535, CVE-2012-5068: ScriptEngine corrected permissions. + - S7158796, CVE-2012-5070: Tighten properties checking in EnvHelp. + - S7158807: Revise stack management with volatile call sites. + - S7163198, CVE-2012-5076: Tightened package accessibility. + - S7167656, CVE-2012-5077: Multiple Seeders are being created. + - S7169884, CVE-2012-5073: LogManager checks do not work correctly for + sub-types. + - S7169887, CVE-2012-5074: Tightened package accessibility. + - S7169888, CVE-2012-5075: Narrowing resource definitions in JMX RMI + connector. + - S7172522, CVE-2012-5072: Improve DomainCombiner checking. + - S7186286, CVE-2012-5081: TLS implementation to better adhere to RFC. + - S7189103, CVE-2012-5069: Executors needs to maintain state. + - S7189490: More improvements to DomainCombiner checking. + - S7189567, CVE-2012-5085: java net obselete protocol. + - S7192975, CVE-2012-5071: Issue with JMX reflection. + - S7195194, CVE-2012-5084: Better data validation for Swing. + - S7195549, CVE-2012-5087: Better bean object persistence. + - S7195917, CVE-2012-5086: XMLDecoder parsing at close-time should be + improved. + - S7195919, CVE-2012-5979: (sl) ServiceLoader can throw CCE without + needing to create instance. + - S7196190, CVE-2012-5088: Improve method of handling MethodHandles. + - S7198296, CVE-2012-5089: Refactor classloader usage. + - S7158800: Improve storage of symbol tables. + - S7158801: Improve VM CompileOnly option. + - S7158804: Improve config file parsing. + - S7198606, CVE-2012-4416: Improve VM optimization. + + -- Matthias Klose <doko@ubuntu.com> Wed, 17 Oct 2012 13:27:47 +0200 + +openjdk-7 (7u7-2.3.2a-1ubuntu1) quantal; urgency=low + + * Build a transitional icedtea-7-jre-cacao package to ease upgrades. + + -- Matthias Klose <doko@ubuntu.com> Wed, 19 Sep 2012 17:42:39 +0200 + +openjdk-7 (7u7-2.3.2a-1) experimental; urgency=low + + * Upload to experimental. + + -- Matthias Klose <doko@ubuntu.com> Sat, 15 Sep 2012 22:20:06 +0200 + +openjdk-7 (7u7-2.3.2a-0ubuntu1) quantal; urgency=low + + * Repackage the source to drop the cacao tarball (and packaging files). + * Depend again on system provided tzdata-java and restore the zi + symlink on upgrade. LP: #1050404. + * libgnome2-0, libgnomevfs2-0, libgconf2-4 are not prepared for multiarch. + Don't depend on these so that openjdk-7 can be installed as a multiarch + package. + + -- Matthias Klose <doko@ubuntu.com> Sat, 15 Sep 2012 17:01:12 +0200 + +openjdk-7 (7u7-2.3.2-1ubuntu2) quantal; urgency=low + + * Make the avian VM a known runtime. + + -- Matthias Klose <doko@ubuntu.com> Wed, 05 Sep 2012 11:58:35 +0200 + +openjdk-7 (7u7-2.3.2-1ubuntu1) quantal; urgency=low + + * Fix 32bit hotspot build, don't set maximal heap space lower than + minimal heap space for the docs build. + * d/p/sane-library-paths.patch, d/p/ant-diagnostics.diff, + d/p/fix-race-cond-print.diff, d/p/gcc-hotspot-opt-O[02].diff, + d/p/gcc-mtune-generic.diff, d/p/openjdk-6986968.diff: Remove, not used. + * Remove unused shark/llvm-3.0 patches. + * d/p/zero-only-use-floating-point-if-floating-poi.patch: Remove, applied + upstream. + * Don't explicitly build with -march=i586 on i386 architectures. + * Re-apply zero-missing-headers.diff. + * Disable cacao builds, needs update for 7u7. + * For Ubuntu quantal, set priorities for alternatives higher than for + OpenJDK 6. + * Call update-alternatives when the existing priority for the alternative + is lower than the current one. + * Configure with --disable-downloading. + * Pass -avoid-version to libtool to create a JamVM libjvm.so without SONAME + version numbers to match the Hotspot Server/Client libjvm.so. LP: #850433. + * Revert the following change: Move libgnome2-0, libgnomevfs2-0, libgconf2-4 + from Depends of JRE package to Recommends (#661465). + The proper fix is to create a -jdk-headless package, or not depending on + these gnome packages at all (e.g. using XDG libraries). + + -- Matthias Klose <doko@ubuntu.com> Tue, 04 Sep 2012 12:08:31 +0200 + +openjdk-7 (7u7-2.3.2-1) experimental; urgency=low + + * New upstream IcedTea7 2.3.2 release. + * Security fixes: + - CVE-2012-4681: Reintroduce PackageAccessible checks removed in 6788531. + - S7079902, CVE-2012-1711: Refine CORBA data models. + - S7143606, CVE-2012-1717: File.createTempFile should be improved + for temporary files created by the platform. + - S7143614, CVE-2012-1716: SynthLookAndFeel stability improvement. + - S7143617, CVE-2012-1713: Improve fontmanager layout lookup operations. + - S7143851, CVE-2012-1719: Improve IIOP stub and tie generation in RMIC. + - S7143872, CVE-2012-1718: Improve certificate extension processing. + - S7152811, CVE-2012-1723: Issues in client compiler. + - S7157609, CVE-2012-1724: Issues with loop. + - S7160757, CVE-2012-1725: Problem with hotspot/runtime_classfile. + - S7165628, CVE-2012-1726: Issues with java.lang.invoke.MethodHandles.Lookup. + * Bump version to 7u7 (OpenJDK), 2.3.2 (IcedTea). Closes: #685276. + * d/p/icedtea7-forest-jdk_7104625-XEvent_wrap_logging_calls_with_if.patch, + d/p/hotspot-sparc.diff: Remove, integrated upstream. + * d/p/{deb-multiarch,fix_extra_flags,hotspot-no-werror}.diff: + Add variants for hotspot and zero builds. + * d/p/default-jvm-cfg.diff, d/p/icedtea-4953367.patch, + d/p/icedtea-patch.diff, d/p/icedtea-pretend-memory.diff, + d/p/libpcsclite-dlopen.diff, d/p/nonreparenting-wm.diff: + Update for 2.3.2. + * Remove build support for Ubuntu releases earlier than hardy. + * d/update-shasum.sh: Only update the shasums of the -dfsg tarballs. + * Don't apply shark patches (not built anyway). + + -- Matthias Klose <doko@ubuntu.com> Sat, 01 Sep 2012 11:46:50 +0200 + +openjdk-7 (7u3-2.1.7-1) unstable; urgency=high + + * IcedTea7 2.1.7 release: + * Security fixes: + - S8007014, CVE-2013-0809: Improve image handling. + - S8007675, CVE-2013-1493: Improve color conversion. + * Backports: + - S8002344: Krb5LoginModule config class does not return proper KDC list + from DNS. + - S8004344: Fix a crash in ToolkitErrorHandler() in XlibWrapper.c. + - S8006179: JSR292 MethodHandles lookup with interface using findVirtual(). + - S8006882: Proxy generated classes in sun.proxy package breaks JMockit. + * Bug fixes: + - PR1303: Correct #ifdef to #if + - Stop libraries being stripped in the OpenJDK build. + - PR1340: Simplify the rhino class rewriter to avoid use of concurrency. + - Revert 7017193 and add the missing free call, until a better fix is ready. + + -- Matthias Klose <doko@ubuntu.com> Sat, 30 Mar 2013 11:31:12 +0100 + +openjdk-7 (7u3-2.1.6-1) unstable; urgency=high + + * IcedTea7 2.1.5 release: + * Security fixes: + - S6563318, CVE-2013-0424: RMI data sanitization. + - S6664509, CVE-2013-0425: Add logging context. + - S6664528, CVE-2013-0426: Find log level matching its name or value + given at construction time. + - S6776941: CVE-2013-0427: Improve thread pool shutdown. + - S7141694, CVE-2013-0429: Improving CORBA internals. + - S7173145: Improve in-memory representation of splashscreens. + - S7186945: Unpack200 improvement. + - S7186946: Refine unpacker resource usage. + - S7186948: Improve Swing data validation. + - S7186952, CVE-2013-0432: Improve clipboard access. + - S7186954: Improve connection performance. + - S7186957: Improve Pack200 data validation. + - S7192392, CVE-2013-0443: Better validation of client keys. + - S7192393, CVE-2013-0440: Better Checking of order of TLS Messages. + - S7192977, CVE-2013-0442: Issue in toolkit thread. + - S7197546, CVE-2013-0428: (proxy) Reflect about creating reflective + proxies. + - S7200491: Tighten up JTable layout code. + - S7200493, CVE-2013-0444: Improve cache handling. + - S7200499: Better data validation for options. + - S7200500: Launcher better input validation. + - S7201064: Better dialogue checking. + - S7201066, CVE-2013-0441: Change modifiers on unused fields. + - S7201068, CVE-2013-0435: Better handling of UI elements. + - S7201070: Serialization to conform to protocol. + - S7201071, CVE-2013-0433: InetSocketAddress serialization issue. + - S8000210: Improve JarFile code quality. + - S8000537, CVE-2013-0450: Contextualize RequiredModelMBean class. + - S8000539, CVE-2013-0431: Introspect JMX data handling. + - S8000540, CVE-2013-1475: Improve IIOP type reuse management. + - S8000631, CVE-2013-1476: Restrict access to class constructor. + - S8001235, CVE-2013-0434: Improve JAXP HTTP handling. + - S8001242: Improve RMI HTTP conformance. + - S8001307: Modify ACC_SUPER behavior. + - S8001972, CVE-2013-1478: Improve image processing. + - S8002325, CVE-2013-1480: Improve management of images. + * Backports: + - S7054590: (JSR-292) MethodHandleProxies.asInterfaceInstance() + accepts private/protected nested interfaces. + - S7175616: Port fix for TimeZone from JDK 8 to JDK 7. + - S8002068: Build broken: corba code changes unable to use new + JDK 7 classes. + - S8004341: Two JCK tests fails with 7u11 b06. + - S8005615: Java Logger fails to load tomcat logger implementation (JULI). + * IcedTea7 2.1.6 release: + * Security fixes: + - S8004937, CVE-2013-1484: Improve proxy construction. + - S8006439, CVE-2013-1485: Improve MethodHandles coverage. + - S8006446, CVE-2013-1486: Restrict MBeanServer access. + - S8006777, CVE-2013-0169: Improve TLS handling of invalid messages. + - S8007688: Blacklist known bad certificate. + * Backports: + - S7123519: problems with certification path. + - S8007393: Possible race condition after JDK-6664509. + - S8007611: logging behavior in applet changed. + * Fix font suggestion for indic fonts in wheezy. + * Fix fontconfig definitions for japanese and korean fonts, fixing + compilation of the fontconfig file. + * Add Built-Using: rhino attribute for the -lib package. + * Don't use concurrent features to rewrite the rhino jar file. + * Enable class data sharing for the hotspot server VM. + * Enable bootstrap builds for alpha. + * Explicitly disable building on mips/mipsel. Not supported by the + Debian OpenJDK maintainers, the Debian mips porters, or the Debian + Java team. + + -- Matthias Klose <doko@ubuntu.com> Thu, 21 Feb 2013 03:38:13 +0100 + +openjdk-7 (7u3-2.1.4-1) unstable; urgency=low + + * IcedTea7 2.1.4 release. + * Security fixes + - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries + - S8006017, CVE-2013-0422: Improve lookup resolutions + - S8006125: Update MethodHandles library interactions + * Loosen OpenGL dependency. Closes: #695028. + * Fix error parsing drop files parameter from pcmanfm (Alberto Fernández + MartÃnez). Closes: #695992. + + -- Matthias Klose <doko@ubuntu.com> Wed, 16 Jan 2013 11:46:20 +0100 + +openjdk-7 (7u3-2.1.3-1) unstable; urgency=low + + * IcedTea7 2.1.3 release. + * Security fixes + - S6631398, CVE-2012-3216: FilePermission improved path checking. + - S7093490: adjust package access in rmiregistry. + - S7143535, CVE-2012-5068: ScriptEngine corrected permissions. + - S7158796, CVE-2012-5070: Tighten properties checking in EnvHelp. + - S7158807: Revise stack management with volatile call sites. + - S7163198, CVE-2012-5076: Tightened package accessibility. + - S7167656, CVE-2012-5077: Multiple Seeders are being created. + - S7169884, CVE-2012-5073: LogManager checks do not work correctly for + sub-types. + - S7169887, CVE-2012-5074: Tightened package accessibility. + - S7169888, CVE-2012-5075: Narrowing resource definitions in JMX RMI + connector. + - S7172522, CVE-2012-5072: Improve DomainCombiner checking. + - S7186286, CVE-2012-5081: TLS implementation to better adhere to RFC. + - S7189103, CVE-2012-5069: Executors needs to maintain state. + - S7189490: More improvements to DomainCombiner checking. + - S7189567, CVE-2012-5085: java net obselete protocol. + - S7192975, CVE-2012-5071: Issue with JMX reflection. + - S7195194, CVE-2012-5084: Better data validation for Swing. + - S7195549, CVE-2012-5087: Better bean object persistence. + - S7195917, CVE-2012-5086: XMLDecoder parsing at close-time should be + improved. + - S7195919, CVE-2012-5979: (sl) ServiceLoader can throw CCE without + needing to create instance. + - S7196190, CVE-2012-5088: Improve method of handling MethodHandles. + - S7198296, CVE-2012-5089: Refactor classloader usage. + - S7158801: Improve VM CompileOnly option. + - S7158804: Improve config file parsing. + - S7198606, CVE-2012-4416: Improve VM optimization. + * Backports + - S7175845: "jar uf" changes file permissions unexpectedly. + - S7177216: native2ascii changes file permissions of input file. + - S7106773: 512 bits RSA key cannot work with SHA384 and SHA512. + - S7158800: Improve storage of symbol tables. + + -- Matthias Klose <doko@ubuntu.com> Wed, 17 Oct 2012 16:03:47 +0200 + +openjdk-7 (7u3-2.1.2-2ubuntu1) precise-security; urgency=low + + * Make the avian VM a known runtime. + + -- Matthias Klose <doko@ubuntu.com> Sat, 08 Sep 2012 16:01:31 +0200 + +openjdk-7 (7u3-2.1.2-2) unstable; urgency=high + + * Pass -avoid-version to libtool to create a JamVM libjvm.so without SONAME + version numbers to match the Hotspot Server/Client libjvm.so. LP: #850433. + + -- Matthias Klose <doko@ubuntu.com> Tue, 04 Sep 2012 17:55:43 +0200 + +openjdk-7 (7u3-2.1.2-1) unstable; urgency=high + + * IcedTea7 2.1.2 release. + * Security fixes + - CVE-2012-4681, S7162473: Reintroduce PackageAccessible checks removed + in 6788531. + - S7162476, CVE-2012-1682: XMLDecoder security issue via ClassFinder. + - S7194567, CVE-2012-3136: Improve long term persistence of java.beans + objects. + - S7163201, CVE-2012-0547: Simplify toolkit internals references. + * d/p/hotspot-sparc.diff: Remove, integrated upstream. + * Stop running the mauve tests. + + -- Matthias Klose <doko@ubuntu.com> Mon, 03 Sep 2012 23:17:11 +0200 + +openjdk-7 (7~u3-2.1.1-3) unstable; urgency=low + + * d/rules: Ensure we don't remove -02 (default) when -03 is disabled + (fix jamvm FTBFS on armhf without -02). + * d/patches/gcc-jdk-opt-O0.diff, d/patches/gcc-jdk-opt-O2.diff, + d/patches/gcc-no-hardening.diff, d/patches/gcc-opt-O2.diff: removed. + + -- Damien Raude-Morvan <drazzib@debian.org> Wed, 25 Jul 2012 21:18:15 +0200 + +openjdk-7 (7~u3-2.1.1-2) unstable; urgency=low + + * d/rules: On Debian Wheezy/Sid bump Build-Depends on libnss3-dev + (>= 2:3.13.4) and Depends on libnss3 (>= 2:3.13.4) (ie. with epoch). + (Closes: #679465). + * d/control: Suggests icedtea-7-plugin instead of icedtea6-plugin + (Closes: #680284). + * d/patches/7130140-MouseEvent-systemout.diff: Remove "MEvent. CASE!" from + console output. (Closes: #679036). + * Disable -O3 compile: cause wrong Math.* computations. + (Closes: #679292 and Closes: #678228). LP: #1044857. + * debian/patches/FreetypeFontScaler_getFontMetricsNative.diff: + Fix "OpenJDK returns the text height greater than font size". + (Closes: #657854) + + -- Damien Raude-Morvan <drazzib@debian.org> Sat, 30 Jun 2012 18:17:51 +0200 + +openjdk-7 (7~u3-2.1.1-1) unstable; urgency=medium + + * New upstream release with security fixes (Closes: #677486): + - S7079902, CVE-2012-1711: Refine CORBA data models + - S7110720: Issue with vm config file loadingIssue with + vm config file loading + - S7143606, CVE-2012-1717: File.createTempFile should be improved + for temporary files created by the platform. + - S7143614, CVE-2012-1716: SynthLookAndFeel stability improvement + - S7143617, CVE-2012-1713: Improve fontmanager layout lookup operations + - S7143851, CVE-2012-1719: Improve IIOP stub and tie generation in RMIC + - S7143872, CVE-2012-1718: Improve certificate extension processing + - S7145239: Finetune package definition restriction + - S7152811, CVE-2012-1723: Issues in client compiler + - S7157609, CVE-2012-1724: Issues with loop + - S7160677: missing else in fix for 7152811 + - S7160757, CVE-2012-1725: Problem with hotspot/runtime_classfile + - S7165628, CVE-2012-1726: Issues with + java.lang.invoke.MethodHandles.Lookup + * Patches merged upstream: + - debian/patches/arm-thumb-fix.diff + - debian/patches/gcc-4.7.diff + + [ James Page ] + * Cherry picked patch from openjdk-6 to fix handling of + ICC profiles (LP: #888123, #888129) (Closes: #676351). + + [ Damien Raude-Morvan ] + * Move libgnome2-0, libgnomevfs2-0, libgconf2-4 from Depends of JRE package + to Recommends (Closes: #661465). + * New jni_md_h_JNIEXPORT_visibility.patch to allow JNIEXPORT definition + to work with -fvisibility=hidden. (Closes: #670896). + + -- Damien Raude-Morvan <drazzib@debian.org> Mon, 11 Jun 2012 21:01:10 +0200 + +openjdk-7 (7~u3-2.1.1~pre1-2) unstable; urgency=low + + * Don't mark the -demo package as Multi-Arch same. Closes: #670038. + * Build using gcc-4.4 on mips, mipsel. + * Build again with older gcj version on s390 (4.6). + + -- Matthias Klose <doko@ubuntu.com> Thu, 03 May 2012 10:44:20 +0200 + +openjdk-7 (7~u3-2.1.1~pre1-1ubuntu3) precise-proposed; urgency=low + + * Default to the ARM assembler interpreter instead to JamVM on + ARM. LP: #993380. + + -- Matthias Klose <doko@ubuntu.com> Wed, 02 May 2012 17:58:20 +0200 + +openjdk-7 (7~u3-2.1.1~pre1-1ubuntu2) precise; urgency=low + + * Use the /usr/bin path for the policytool desktop file. LP: #980205. + Closes: #670037. + + -- Matthias Klose <doko@ubuntu.com> Thu, 12 Apr 2012 23:29:06 +0200 + +openjdk-7 (7~u3-2.1.1~pre1-1ubuntu1) precise; urgency=low + + * Regenerate the control file. + + -- Matthias Klose <doko@ubuntu.com> Wed, 11 Apr 2012 07:21:41 +0200 + +openjdk-7 (7~u3-2.1.1~pre1-1) unstable; urgency=low + + * Update from the IcedTea7-2.1 release branch (20110410). + * Install desktop files again, using the common /usr/bin/java + interpreter name. + * Build-depend on libpng-dev for newer releases. Closes: #662452. + * Let dlopen handle finding the libpcsclite library. LP: #898689. + * Build-depend on fonts-ipafont-mincho, fixing a build failure in the + fontconfig compiler (find out why it breaks ...). + * Build using gcc-4.7/gcj-4.7 for sid/wheezy, fix build failure. + * Remove `-icedtea' suffix from the release identification. + * Fix arm thumb build, update taken from IcedTea6. + + -- Matthias Klose <doko@ubuntu.com> Tue, 10 Apr 2012 14:11:09 +0200 + +openjdk-7 (7~u3-2.1-4) unstable; urgency=low + + [ Matthias Klose ] + * Don't install the binary fontconfig file. LP: #964303. + + [ Damien Raude-Morvan ] + * Remove libxp-dev check in configure.ac, it's not needed anymore + (Closes: #657260) and so drop build dependency on libxp-dev. + * Fix FTBFS with glib 2.32 by adding explicit dependency gthread-2.0.pc + (Closes: #665666). + * Use libpng-dev instead of libpng12-dev for wheezy/sid (Closes: #662453). + + -- Damien Raude-Morvan <drazzib@debian.org> Mon, 09 Apr 2012 00:21:20 +0200 + +openjdk-7 (7~u3-2.1-3) unstable; urgency=low + + * d/rules,Makefile.am: Improve handling of dpkg-buildflags: don't overwrite + CFLAGS of hotspot but use EXTRA_* flags into icedtea and openjdk Makefile. + (Closes: #661695). + * d/rules: Build everything with -03 opt level (jamvm, cacao and jdk) + * d/patches/kfreebsd-support-*.diff: Refresh kfreebsd patches and + fix FTBFS on k-i386 (ie. at least on a sid VM). + * Backport S7104625 as d/patches/icedtea7-forest-jdk_7104625*.patch + to check for logging to prevent wasted CPU (Closes: #651423). + + -- Damien Raude-Morvan <drazzib@debian.org> Tue, 06 Mar 2012 01:09:09 +0100 + +openjdk-7 (7~u3-2.1-2) unstable; urgency=low + + [ Matthias Klose ] + * Use NanumMyeongjo as the preferred korean font. LP: #792471. + * Fix crash in java.net.NetworkInterface.getNetworkInterfaces() when + ifr_ifindex exceeds 255. LP: #925218. S7078386. + * Use IPAfont as the preferred japanesse font. Closes: #646054. + * Build using gcj on alpha and armel. Closes: #655750. + + [ Damien Raude-Morvan ] + * d/patches/sparc-stubgenerator.diff: Fix FTBFS on sparc on + stubGenerator_sparc.cpp by using explicit class typedef + (Closes: #660871). + * d/patches/fix_extra_flags.diff: Improve support for hardened build, + also send flags to jdk build and send -Wl,-z,relro during hotspot link. + * Bump Standards-Version to 3.9.3: no changes needed. + * d/control: Don't use nonexistent dlopenjl:Recommends substvar, + replaced by dlopenhl:Recommends. + * d/*.{prerm,postrm}: Use set -e inside script instead of sh -e shebang. + * Cleanup lintian-overrides. + + -- Damien Raude-Morvan <drazzib@debian.org> Wed, 29 Feb 2012 00:52:49 +0100 + +openjdk-7 (7~u3-2.1-1ubuntu2) precise; urgency=low + + * Make sure that the nss.cfg doesn't mention any library path. + LP: #939361, #939419. + * Disable the accessibility wrapper, doesn't work yet. LP: #935296. + + -- Matthias Klose <doko@ubuntu.com> Fri, 24 Feb 2012 15:10:12 +0100 + +openjdk-7 (7~u3-2.1-1ubuntu1) precise; urgency=low + + [ Damien Raude-Morvan ] + * d/patches/jexec.diff: Dropped, uneeded and not compatible with multi-arch. + * d/rules: Use dpkg-buildflags to enable hardened build. + (Closes: #660021). + + [ Matthias Klose ] + * Merge r522 from openjdk6: + - Make upgrades from non-multiarch to multiarch builds more silent. + - Fix order of grant decls in java.policy. + - Make doc files multi-arch installable. + - JB-archive.applications.in: Use /usr/bin/java by default. Maybe + should be moved to the default-jdk package. + * Explicitly look for the gthread-2.0 pkgconfig module. + + -- Matthias Klose <doko@ubuntu.com> Wed, 22 Feb 2012 14:07:16 +0100 + +openjdk-7 (7~u3-2.1-1) unstable; urgency=low + + * Update icedtea7 2.1 (OpenJDK7 ~u3 release): + - Check for logging to prevent wasted CPU (Closes: #651423). + * Fix following security issues: + - S7082299, CVE-2011-3571: Fix in AtomicReferenceArray + - S7088367, CVE-2011-3563: Fix issues in java sound + - S7110683, CVE-2012-0502: Issues with some KeyboardFocusManager method + - S7110687, CVE-2012-0503: Issues with TimeZone class + - S7110700, CVE-2012-0505: Enhance exception throwing mechanism in + ObjectStreamClass + - S7110704, CVE-2012-0506: Issues with some method in corba + - S7112642, CVE-2012-0497: Incorrect checking for graphics rendering object + - S7118283, CVE-2012-0501: Better input parameter checking in zip file + processing + - S7126960, CVE-2011-5035: Add property to limit number of request headers + to the HTTP Server + + [ Matthias Klose ] + * openjdk-7-jre-lib: Mark as Multi-Arch: foreign. + + [ Damien Raude-Morvan ] + * Merge r501-521 from openjdk6: + - Fix plugin name in jinfo file. + - Fix build flags for cppInterpreter_arm.o. + - Use java-atk-wrapper instead of java-access-bridge for accessibility. + - Make the java.policy file multi-arch installable. + - Don't install desktop and menu files for multiarch builds. + Needs a better solution. + - Don't install an alternative for the deprecated apt tool. + - Make the upgrade from a non-multiarch installation location more + robust; don't depend on version numbers, but check the path of the + alternatives. + - Disable test for armel and powerpc (broken on buildd) + * d/rules: Make symbolic links to src.zip on /usr/lib/jvm/java-7-openjdk-amd64 + like openjdk-6-jdk (Closes: #649618). + * d/rules: Pass -n to gzip when compressing manpages to be Multi-Arch: same safe. + * d/rules: Add build-arch/build-indep target. + * d/rules: Re-enable Cacao VM! + * d/{rules,control}: Only rhino 1.7R3 is supported by openjdk7, update B-D. + * d/patches/hotspot-s390.diff: Update for latest Hotspot. + * d/patches/icedtea-patch.diff: Move nssLibraryDirectory handling to d/rules. + * d/rules: Remove --with-*-drop-zip options, as code drops are embedded. + * d/patches/hsx23-zero.patch, patches/shark-compiler-fixes.patch: + Fix FTBFS for Zero under Hotspot >= v22. + * d/patches/kfreebsd-*: Refreshed. + * d/control: Make openjdk-7-source:all package binNMU-able by using + Depends ">=" on openjdk-7-jre (ie. src.zip won't change). + + -- Damien Raude-Morvan <drazzib@debian.org> Wed, 15 Feb 2012 20:55:52 +0100 + +openjdk-7 (7~b147-2.0-1) unstable; urgency=low + + * New upstream IcedTea7 release. + - S7000600, CVE-2011-3547: InputStream skip() information leak. + - S7019773, CVE-2011-3548: mutable static AWTKeyStroke.ctor. + - S7023640, CVE-2011-3551: Java2D TransformHelper integer overflow. + - S7032417, CVE-2011-3552: excessive default UDP socket limit under + SecurityManager. + - S7046794, CVE-2011-3553: JAX-WS stack-traces information leak. + - S7046823, CVE-2011-3544: missing SecurityManager checks in scripting + engine. + - S7055902, CVE-2011-3521: IIOP deserialization code execution. + - S7057857, CVE-2011-3554: insufficient pack200 JAR files uncompress error + checks. + - S7064341, CVE-2011-3389: HTTPS: block-wise chosen-plaintext attack + against SSL/TLS (BEAST). + - S7070134, CVE-2011-3558: HotSpot crashes with sigsegv from PorterStemmer. + - S7077466, CVE-2011-3556: RMI DGC server remote code execution. + - S7083012, CVE-2011-3557: RMI registry privileged code execution. + - S7096936, CVE-2011-3560: missing checkSetFactory calls in + HttpsURLConnection. + + [ Matthias Klose ] + * Merge debian packaging r501 from openjdk-6: + - Tighten inter-package dependencies for Debian builds. Closes: #641240. + * Build-depend on wdiff. + + -- Damien Raude-Morvan <drazzib@debian.org> Sat, 01 Oct 2011 10:53:15 +0200 + +openjdk-7 (7~b147-2.0~pre6-2) unstable; urgency=low + + * d/rules: Fix java.policy to include jre/lib/ext/* files (instead of + non-existant ext/*). It'll restore privilegied access from sunpkcs11.jar + to sun.* code. + * d/patches/s390_hotspot_fix.diff: Update to fix FTBFS on s390. + + -- Damien Raude-Morvan <drazzib@debian.org> Sat, 01 Oct 2011 10:53:15 +0200 + +openjdk-7 (7~b147-2.0~pre6-1) unstable; urgency=low + + * Update to IcedTea7 (20110928). + + [ Matthias Klose ] + * Merge debian packaging r496 from openjdk-6: + - Fix dangling java-1.7.0-openjdk symlink for non-multiarch builds. + + [ Damien Raude-Morvan ] + * d/rules: --disable-compile-against-syscalls for kFreeBSD (since there is + no epoll support). + * Update patches: + - d/patches/sun-awt-buildsystem.diff: Drop, merged upstream. + - d/patches/icedtea-override-redirect-compiz.patch: Refresh. + - d/patches/s390_hotspot_fix.diff: Extracted (instead of direct patch). + * Add Build-Depends on libattr1-dev. + + -- Damien Raude-Morvan <drazzib@debian.org> Wed, 28 Sep 2011 17:19:33 +0200 + +openjdk-7 (7~b147-2.0~pre5-1) unstable; urgency=low + + * Update to IcedTea7 (20110914). + - d/patches/jdk-no-mapfile.diff: Drop, merged in icedtea7-forest + (for real this time). + - d/patches/sun-awt-buildsystem.diff: Fix icedtea7-forest awt build. + * d/patches/kfreebsd-support-jdk.diff: Refresh. + * d/patches/icedtea-patch.diff: Remove usage of nssLibraryDirectory because + while it works for nss3, it fails for softokn3 (since the latter is + in nss/ subdirectory). Without this parameter, openjdk-7 will rely on + default ld.so behavior. (Closes: #637337, #638008) + In openjdk-6, nssLibraryDirectory was not used to load softokn3 (Secmod). + * d/control: openjdk-7-jre Provides java7-runtime, openjdk-7-jre-headless + Provides java7-runtime-headless and openjdk-7-jdk Provides java7-jdk. + (Closes: #641668). + + -- Damien Raude-Morvan <drazzib@debian.org> Mon, 19 Sep 2011 16:33:15 +0200 + +openjdk-7 (7~b147-2.0~pre4-1) unstable; urgency=low + + * Update to IcedTea7 (20110906): + - JamVM: support for armhf and other various fixes. + * Upload to unstable. + * Regenerate control file for debian unstable. + * Makefile.am: Force JAVA_HOME for ant call to --with-jdk-home value (without + this, it defaults to existing JAVA_HOME env or /usr/bin/java link) + + -- Damien Raude-Morvan <drazzib@debian.org> Mon, 05 Sep 2011 23:50:43 +0200 + +openjdk-7 (7~b147-2.0~pre3-3ubuntu2) oneiric; urgency=low + + * Merge debian packaging r491 from openjdk-6: + - Move the -lib files into a different location so that the java-7-openjdk + name can be used as a symlink. + - Symlink the jre/cmm directory, instead of the files inside. Closes: #639883. + + -- Matthias Klose <doko@ubuntu.com> Thu, 01 Sep 2011 21:08:45 +0200 + +openjdk-7 (7~b147-2.0~pre3-3ubuntu1) oneiric; urgency=low + + * Regenerate the control file. + + -- Matthias Klose <doko@ubuntu.com> Sun, 28 Aug 2011 23:42:18 +0200 + +openjdk-7 (7~b147-2.0~pre3-3) experimental; urgency=low + + * Merge debian packaging r485:489 from openjdk-6: + - Build using GCC-4.4 on sparc and sparc64. + - Enable testsuite runs in s390x. + * Merge debian packaging r490 from openjdk-6: + - Set plugin name for the jinfo file. Closes: #638548, + - Disable the mauve testsuite on i386. + - Make the installation multiarch aware. + + -- Matthias Klose <doko@ubuntu.com> Sun, 28 Aug 2011 20:42:54 +0200 + +openjdk-7 (7~b147-2.0~pre3-2) experimental; urgency=low + + * d/patches/jdk-no-mapfile.diff: Re-add was not merged into + current (e46d527097f1) revision but latter. + + -- Damien Raude-Morvan <drazzib@debian.org> Mon, 22 Aug 2011 00:11:33 +0200 + +openjdk-7 (7~b147-2.0~pre3-1) experimental; urgency=low + + * Update to IcedTea7 (20110821): + - JamVM updates. + - S7070134,S7044738,S7068051,S7073913: Fix random segfaults + and related invalid results from loop unroll optimization. + - d/patches/jdk-no-mapfile.diff: Drop, merged in icedtea7-forest. + + [ Matthias Klose ] + * Build using GCC-4.4 on mips/mipsel. Closes: #628620. + * Merge debian packaging r482:485 from openjdk-6: + - Call dbus-launch --exit-with-session in testsuite. Closes: #612394. + - Build for s390x using Zero. + + [ Damien Raude-Morvan ] + * d/patches/kfreebsd-support-hotspot.diff: Add workaround + to handle #637378. + * d/generate-dfsg-zip.sh: Update to also handle langtools.tar.gz. + Closes: #623693. + + -- Damien Raude-Morvan <drazzib@debian.org> Sun, 21 Aug 2011 20:08:50 +0200 + +openjdk-7 (7~b147-2.0~pre2-3) experimental; urgency=low + + * d/patches/kfreebsd-support-hotspot.diff: Fix access to CPU registry under + kfreebsd-amd64. + + -- Damien Raude-Morvan <drazzib@debian.org> Sun, 07 Aug 2011 12:22:47 +0200 + +openjdk-7 (7~b147-2.0~pre2-2) experimental; urgency=low + + * d/patches/kfreebsd-support-jamvm.diff: Add support for kfreebsd-amd64. + * d/patches/kfreebsd-support-hotspot.diff: Small fixes for Hotspot on + kfreebsd-i386. + * Split d/patches/hotspot-s390.diff and zero-missing-headers.diff. + * Re-add missing changes from last upload: + - patches/use-idx_t.patch: Edit upstream patch to avoid FTBFS on s390. + - Makefile.{am,im}: Force bootclasspath (useful when building from + openjdk-6). + + -- Damien Raude-Morvan <drazzib@debian.org> Sat, 06 Aug 2011 23:50:58 +0200 + +openjdk-7 (7~b147-2.0~pre2-1) experimental; urgency=low + + * Update to icedtea7-forest snapshot (20110804): + - d/patches/pr753.diff: drop, merged in icedtea7-forest. + - d/patches/pr757.diff: drop, merged in icedtea7-forest. + - d/patches/zero-jsr292-fixes.diff: drop, merged in icedtea7-forest. + - d/patches/no-compiler-path.diff: drop, now handled correctly icedtea7's + configure and openjdk's Makefile (by CC and CXX environment variables). + - Updated JamVM to the 2011-08-01 revision. + + [ Damien Raude-Morvan ] + * d/patches/zero-fpu-control-is-noop.diff: Remove ShouldNotCallThis from + os_linux_zero.cpp (fix crash under i386). + * d/rules: Enable support for GNU/kFreeBSD arch: + - d/patches/kfreebsd-support-*: Update with latest fixes. + - d/patches/kfreebsd-sync-issues.diff: hack to force some wait + until we fix sync issues. + - d/rules: Enable shark for GNU/kFreeBSD. + * d/rules: Use DEB_HOST_ARCH_CPU for jvmarch/archdir. Thanks to + Jérémie Koenig <jk@jk.fr.eu.org> for patch. + * d/patches/jexec.diff: Update for openjdk-7. + * d/JB-jdk.overrides.in: Fix override for new Lintian 2.5.0 path handling. + * d/icedtea-7-jre-jamvm.overrides: As for others libjvm.so, we use + --strip-debug instead of --strip-unneeded. + * d/source.lintian-overrides: Drop, not used anymore in openjdk-7. + + [ Matthias Klose ] + * Merge debian packaging r472:482 from openjdk-6: + - openjdk-6-jre-headless: Depend on icedtea-6-jre-jamvm, if it's + the default VM. + - Use gcj-4.4 as the stage1 java VM on mips and mipsel. + - Make JamVM the default VM on Ubuntu oneiric/ARM. + + -- Matthias Klose <doko@ubuntu.com> Thu, 04 Aug 2011 11:38:01 +0200 + +openjdk-7 (7~b147-2.0~pre1-1) experimental; urgency=low + + * New b147 code drop (OpenJDK7 RC1). + + [ Matthias Klose ] + * Fix build on sparc64. + * Recognize 32bit user space on sparc. + * Build shark using llvm-2.9. + + [ Damien Raude-Morvan ] + * d/patches/zero-jsr292-fixes.diff: Fixes on Zero/Shark for JSR 292 support + from Chris Phillips <ChrisPhi@lgonqn.org>. + * d/generate-dfsg-zip.sh: Update for OpenJDK7 as a first step to get #623693 + fixed. + * d/patches/kfreebsd-*: WiP patches for GNU/kFreeBSD support + (not yet enabled by default). + + -- Matthias Klose <doko@ubuntu.com> Sun, 17 Jul 2011 16:08:51 +0200 + +openjdk-7 (7~b143-2.0~pre1-2) experimental; urgency=low + + * Upload to experimental. + + -- Matthias Klose <doko@ubuntu.com> Tue, 12 Jul 2011 14:30:01 +0200 + +openjdk-7 (7~b143-2.0~pre1-1ubuntu1) oneiric; urgency=low + + * Fix zero builds on non-ix86 architectures. + * Fix build on sparc. + * Build using jpeg8. + + -- Matthias Klose <doko@ubuntu.com> Tue, 12 Jul 2011 14:25:24 +0200 + +openjdk-7 (7~b143-2.0~pre1-1) experimental; urgency=low + + [ Damien Raude-Morvan ] + * New b143 code drop. + * Drop d/patches/7031385.diff: Merged upstream. + * Drop d/patches/jamvm-oj7.patch: Merged upstream. + * Manpages are now ja_JP.UTF-8 instead of ja_JP.eucJP + + [ Matthias Klose ] + * Apply fix for IcedTea issue #753, #757. + * Update s390 hotspot build fixes. + * Re-enable zero on i386. + + -- Matthias Klose <doko@ubuntu.com> Sun, 10 Jul 2011 14:28:17 +0200 + +openjdk-7 (7~b136-2.0~pre1-2) experimental; urgency=low + + * Disable zero on i386. + + -- Matthias Klose <doko@ubuntu.com> Sun, 29 May 2011 12:37:03 +0200 + +openjdk-7 (7~b136-2.0~pre1-1ubuntu1) oneiric; urgency=low + + * Upload to oneiric. + + -- Matthias Klose <doko@ubuntu.com> Sun, 29 May 2011 07:59:01 +0200 + +openjdk-7 (7~b136-2.0~pre1-1) experimental; urgency=low + + [ Matthias Klose ] + * Fix non-bootstrap builds. + * Merge debian packaging r469:472 from openjdk-6. + * Run jtreg tests using JamVM too. + * Don't run the jtreg tests with the NSS security provider enabled. + * Update JamVM to 20110528. + * Re-enable the zero build, keep the shark builds disabled. + + [ Damien Raude-Morvan ] + * Only apply jamvm-oj7.patch when jamvm build in enabled. + + -- Matthias Klose <doko@ubuntu.com> Sat, 28 May 2011 17:17:23 +0200 + +openjdk-7 (7~b136-1.14+debian1-1) experimental; urgency=low + + * New upstream release: Icedtea 1.14. + - debian/patches/jamvm-oj7.patch: support new instruction + (JVM_FindClassFromBootLoader) in JamVM. + - Makefile.am: Fix some missing depends between + patch and extract targets. + * debian/patches/nonreparenting-wm.diff: Update. + * Replace B-D on libxalan2-java by xsltproc for bootstrapping JMVTI. + * Don't use GCJ_SUFFIX=4.6 for sid/wheezy/oneiric as GCJ version + is not homogeneous between arch. + * Enable JamVM support: + - d/control: Add B-D on libtool. + + -- Damien Raude-Morvan <drazzib@debian.org> Thu, 26 May 2011 23:03:56 +0200 + +openjdk-7 (7~b136-1.14~pre0-4) experimental; urgency=low + + * Re-add build dependency on fastjar. + * Fix dependency on liblcms2-2. + + -- Matthias Klose <doko@ubuntu.com> Sun, 08 May 2011 10:21:21 +0200 + +openjdk-7 (7~b136-1.14~pre0-3) experimental; urgency=low + + * Fix liblcms dependency for -jre-headless package. + + -- Damien Raude-Morvan <drazzib@debian.org> Sat, 07 May 2011 17:20:15 +0200 + +openjdk-7 (7~b136-1.14~pre0-2ubuntu2) oneiric; urgency=low + + * Re-add build dependency on fastjar. + + -- Matthias Klose <doko@ubuntu.com> Sun, 08 May 2011 02:51:47 +0200 + +openjdk-7 (7~b136-1.14~pre0-2) experimental; urgency=low + + * Fix build failure on i386 with GCC 4.6. + + -- Matthias Klose <doko@ubuntu.com> Fri, 06 May 2011 17:10:00 +0200 + +openjdk-7 (7~b136-1.14~pre0-1) experimental; urgency=low + + [ Damien Raude-Morvan ] + * New b136 code drop: + - d/rules: Use jaxp-1_4_5-dev1.zip as jaxp-drop-zip. + - d/patches/icedtea-pretend-memory.diff: Refreshed. + + [ Matthias Klose ] + * Fix -jre-lib dependency on -jre. Closes: #624846. + * Add lcms configury. + + -- Matthias Klose <doko@ubuntu.com> Thu, 05 May 2011 21:08:55 +0200 + +openjdk-7 (7~b130-1.14~pre0-2) experimental; urgency=low + + * Remove obsolete conflicts. Closes: #624090. + * Add copyright for the rewriter class. Addresses part of #623693. + * Lower priorities for the alternatives below these of OpenJDK 6, + as long as OpenJDK 7 is not yet released. + * Don't build HotSpot with -Werror on architectures other than amd64 + and i386. + + -- Matthias Klose <doko@ubuntu.com> Wed, 27 Apr 2011 23:03:45 +0200 + +openjdk-7 (7~b130-1.14~pre0-1) experimental; urgency=low + + * New b130 code drop. + * Merge debian packaging r464:469 from openjdk-6. + * Do not bump the epoch, package was never uploaded to any official + repository. + + -- Matthias Klose <doko@ubuntu.com> Wed, 20 Apr 2011 21:46:32 +0200 + +openjdk-7 (1:7~b129-1.14~pre0-1) experimental; urgency=low + + * New b129 code drop. + * Bump epoch to 1 and use ~ to indicate that's not openjdk-7 final relaase. + + -- Damien Raude-Morvan <drazzib@debian.org> Mon, 14 Feb 2011 00:34:45 +0100 + +openjdk-7 (7b128-1.14~pre0-1) UNRELEASED; urgency=low + + * New b128 code drop. + * Exclude "release" file for dh_install. + + -- Damien Raude-Morvan <drazzib@debian.org> Mon, 07 Feb 2011 23:45:13 +0100 + +openjdk-7 (7b126-1.14~pre0-1) UNRELEASED; urgency=low + + * Merge debian packaging r446:464 from openjdk-6 + but keep the following changes : + - Replace DISABLE_PRECOMPILED_HEADER=1 by USE_PRECOMPILED_HEADER=0 + - Use "ant, ant-optionnal" for all distrel + - Drop "with_hotspot" variable (only one hotspot supported by IcedTea7) + - Drop --enable-xrender (not supported by IcedTea7) + * New b125 code drop: + - d/rules: Use new archives by --with-*-src-zip + * Refresh patches: + - d/patches/shebang.diff: Year updated + - d/patches/ld-symbolic-functions.diff and + d/patches/no-compiler-path.diff: Changed corba generic Makefiles. + - d/patches/default-jvm-cfg.diff and d/patches/set-exec-name.diff: + Upstream merged "solaris" and "linux" java.c and java_md.c + * Drop patches: + - d/patches/too-many-args-ftbfs.diff (merged upstream) + - d/patches/sparc.diff (merges upstream) + - d/patches/hotspot-include-fixes.diff (includeDB dropped upstream) + + -- Damien Raude-Morvan <drazzib@debian.org> Mon, 24 Jan 2011 00:18:38 +0100 + +openjdk-7 (7b106~pre1-0lucid2) lucid; urgency=low + + * Build for lucid. + + -- Matthias Klose <doko@ubuntu.com> Thu, 09 Sep 2010 15:32:13 +0200 + +openjdk-7 (7b106~pre1-0ubuntu2) maverick; urgency=low + + * Build openjdk-7 snapshot (7b106) + * Symlink timezone data. + * Disable shark builds, currently broken in 7b106. + + -- Matthias Klose <doko@ubuntu.com> Tue, 07 Sep 2010 04:56:48 +0200 + +openjdk-7 (7b89-1.13-0ubuntu1) maverick; urgency=low + + * Update to the IcedTea 1.13 release. + * openjdk-7-jre: Recommend ttf-dejavu-extra. LP: #569396. + + -- Matthias Klose <doko@ubuntu.com> Fri, 30 Jul 2010 01:19:45 +0200 + +openjdk-7 (7b89~pre1-0lucid3) lucid; urgency=low + + * Include docs in the -doc package. LP: #600834. + * Update from the IcedTea6 trunk. + - Plugin and netx fixes. + - Don't link the plugin against the libxul libraries. Closes: #576361. + - More plugin cpu usage fixes. Closes: #584335, #587049. + - Plugin: fixes AppletContext.getApplets(). + * Fix Vcs-Bzr location. Closes: #530883. + * Search for unversioned llvm-config tool. + * Don't set XFILESEARCHPATH and NLSPATH on startup. LP: #586641. + * Fix chinese font metrics and prefer using 'WenQuanYi Micro Hei' font. + LP: #472845. + * Strip libjvm.so with --strip-debug instead of --strip-unneeded. + LP: #574997. + * Fix inter-package dependencies. + + -- Matthias Klose <doko@ubuntu.com> Thu, 15 Jul 2010 18:12:17 +0200 + +openjdk-7 (7b89~pre1-0lucid1) lucid; urgency=low + + [ Damien Raude-Morvan ] + * Merge debian packaging r403:430 from openjdk-6. + * Add myself to Uploaders. + * Build openjdk-7 snapshot (7b89) + * Use ant+ant-optional (IcedTea7 support ant 1.8). + * Merge debian packaging r431:436 from openjdk-6. + + [ Matthias Klose ] + * Merge debian packaging r430:445 from openjdk-6. + * Update debian patches to 7b89. + * Reenable the two stage build. + * Reenable building cacao. + * Reenable building zero. + + -- Matthias Klose <doko@ubuntu.com> Tue, 13 Jul 2010 10:32:11 +0200 + +openjdk-7 (7b77-0ubuntu1~ppa1) lucid; urgency=low + + * Build openjdk-7 snapshot (7b77). + * Merge debian packaging r391:403 from openjdk-6. + + -- Matthias Klose <doko@ubuntu.com> Mon, 21 Dec 2009 16:58:34 +0100 + +openjdk-7 (7b72-0ubuntu1~ppa1) karmic; urgency=low + + * Build openjdk-7 snapshot (7b72). + * Merge debian packaging r371:391 from openjdk-6. + * Disable the zero build for now. + + -- Matthias Klose <doko@ubuntu.com> Sat, 03 Oct 2009 16:35:27 +0200 + +openjdk-7 (7b66-0ubuntu1~ppa1) karmic; urgency=low + + * Build openjdk-7 snapshot (7b66). + * Merge debian packaging r362:371 from openjdk-6. + + -- Matthias Klose <doko@ubuntu.com> Thu, 06 Aug 2009 12:40:00 +0200 + +openjdk-7 (7b59-0ubuntu1) karmic; urgency=low + + * Reenable the build of zero. + * Reapply fontconfig patch. + * Apply icedtea-cacao-no-mmap-first-page patch. + + -- Matthias Klose <doko@ubuntu.com> Fri, 29 May 2009 10:19:26 +0200 + +openjdk-7 (7b59-0ubuntu1~ppa1) karmic; urgency=low + + * Build openjdk-7 snapshot (7b59). + * Merge debian packaging r205:362 from openjdk-6. + + -- Matthias Klose <doko@ubuntu.com> Wed, 27 May 2009 12:09:16 +0200 + +openjdk-7 (7b40-0ubuntu2) jaunty; urgency=low + + * Add build dependency on libxrender-dev. + * Don't use fastjar on ia64, working around a build failure. + * Add configury for shark builds. + + -- Matthias Klose <doko@ubuntu.com> Thu, 04 Dec 2008 16:26:15 +0100 + +openjdk-7 (7b40-0ubuntu1) jaunty; urgency=low + + * Build openjdk-7 snapshot (7b40). + * Update packaging for openjdk-7. + + -- Matthias Klose <doko@ubuntu.com> Tue, 02 Dec 2008 14:27:03 +0100 + +openjdk-6 (6b22-1.10.1-0ubuntu1) natty; urgency=low + + * IcedTea6 1.10.1 release. + + -- Matthias Klose <doko@ubuntu.com> Tue, 05 Apr 2011 12:20:36 +0200 + +openjdk-6 (6b22-1.10.1~pre1-1) experimental; urgency=low + + * Upload to experimental. + + -- Matthias Klose <doko@ubuntu.com> Sat, 26 Mar 2011 10:43:49 +0100 + +openjdk-6 (6b22-1.10.1~pre1-0ubuntu1) natty; urgency=low + + * Update from the IcedTea6-1.10 release branch (20110325). + * Add multiarch directories to the default library path. LP: #737603. + + -- Matthias Klose <doko@ubuntu.com> Fri, 25 Mar 2011 16:33:57 +0100 + +openjdk-6 (6b22-1.10-3) experimental; urgency=low + + * Fix JamVM build on mips/mipsel (Robert Lougher). + * Re-enable the JamVM build on mips/mipsel. + + -- Matthias Klose <doko@ubuntu.com> Sun, 06 Mar 2011 15:01:54 +0100 + +openjdk-6 (6b22-1.10-2) experimental; urgency=low + + * Mention that IcedTea is copyrigh GPLv2 + "CLASSPATH" EXCEPTION. + Closes: #611269. + * Don't run the jdk checks for the alternate builds (hotspot and + langtools checks are still run). + * Disable the JamVM build on mips/mipsel. + + -- Matthias Klose <doko@ubuntu.com> Sat, 05 Mar 2011 16:13:40 +0100 + +openjdk-6 (6b22-1.10-1) experimental; urgency=low + + * Upload to experimental. + + -- Matthias Klose <doko@ubuntu.com> Fri, 04 Mar 2011 16:12:50 +0100 + +openjdk-6 (6b22-1.10-0ubuntu2) natty; urgency=low + + * Disable the jdk tests with the Shark, JamVM and Cacao VMs. + + -- Matthias Klose <doko@ubuntu.com> Fri, 04 Mar 2011 15:32:50 +0100 + +openjdk-6 (6b22-1.10-0ubuntu1) natty; urgency=low + + * IcedTea6 1.10 release. + + -- Matthias Klose <doko@ubuntu.com> Thu, 03 Mar 2011 09:32:19 +0100 + +openjdk-6 (6b21~pre3-0ubuntu1) natty; urgency=low + + * Update from the IcedTea6 trunk (20110224). + * icedtea-6-jre-jamvm: Build JamVM as an alternative VM, + start with `java -jamvm'. + + -- Matthias Klose <doko@ubuntu.com> Thu, 24 Feb 2011 02:45:56 +0100 + +openjdk-6 (6b21~pre2-0ubuntu1) natty; urgency=low + + * Update from the IcedTea6 trunk (20110217). + * Update hotspot hs20 (not yet enabled). + * Add ppc64 packaging bits. + + -- Matthias Klose <doko@ubuntu.com> Fri, 18 Feb 2011 15:55:41 +0100 + +openjdk-6 (6b21~pre1-1) experimental; urgency=low + + * Upload to experimental. + + -- Matthias Klose <doko@ubuntu.com> Sat, 22 Jan 2011 15:34:21 +0100 + +openjdk-6 (6b21~pre1-0ubuntu1) natty; urgency=low + + * Update to 6b21. + + -- Matthias Klose <doko@ubuntu.com> Sat, 22 Jan 2011 14:28:28 +0100 + +openjdk-6 (6b20-1.10~pre3-0ubuntu4) natty; urgency=low + + * Fix shark build on powerpc. + + -- Matthias Klose <doko@ubuntu.com> Fri, 24 Dec 2010 11:06:32 +0100 + +openjdk-6 (6b20-1.10~pre3-0ubuntu3) natty; urgency=low + + * Update from the IcedTea6 trunk (20101223). + + -- Matthias Klose <doko@ubuntu.com> Thu, 23 Dec 2010 14:27:17 +0100 + +openjdk-6 (6b20-1.10~pre3-0ubuntu1) natty; urgency=low + + * Update from the IcedTea6 trunk (20101126). + * Update hotspot hs19. + * Fix build failures on ia64, s390 and sparc64. + + -- Matthias Klose <doko@ubuntu.com> Fri, 26 Nov 2010 16:38:16 +0100 + +openjdk-6 (6b20-1.10~pre2-0ubuntu7~ppa1) natty; urgency=low + + * Reenable shark on amd64, but build using llvm-2.7. + + -- Matthias Klose <doko@ubuntu.com> Thu, 21 Oct 2010 23:59:30 +0200 + +openjdk-6 (6b20-1.10~pre2-0ubuntu5) natty; urgency=low + + * Don't try to set up an alternative for javaws + + -- Matthias Klose <doko@ubuntu.com> Thu, 21 Oct 2010 17:38:48 +0200 + +openjdk-6 (6b20-1.10~pre2-0ubuntu3) natty; urgency=low + + * Stop building zero/shark on amd64. Fails the self tests. + + -- Matthias Klose <doko@ubuntu.com> Thu, 21 Oct 2010 13:49:56 +0200 + +openjdk-6 (6b20-1.10~pre2-0ubuntu2) natty; urgency=low + + * Don't include OpenJDK's javaws either. + * openjdk-6-jre: Recommend icedtea-netx. + + -- Matthias Klose <doko@ubuntu.com> Thu, 21 Oct 2010 08:34:07 +0200 + +openjdk-6 (6b20-1.10~pre2-0ubuntu1) natty; urgency=low + + * Update from the IcedTea6 trunk (20101020). + * Remove the plugin and javaws from the packaging, removed upstream. + + -- Matthias Klose <doko@ubuntu.com> Wed, 20 Oct 2010 17:45:09 +0200 + +openjdk-6 (6b20-1.10~pre1-0ubuntu2) natty; urgency=low + + * Build with hotspot 19. + + -- Matthias Klose <doko@ubuntu.com> Thu, 14 Oct 2010 11:28:38 +0200 + +openjdk-6 (6b20-1.10~pre1-0ubuntu1) natty; urgency=low + + * Snapshot, taken from the IcedTea6 trunk (20101013). + + -- Matthias Klose <doko@ubuntu.com> Wed, 13 Oct 2010 08:36:44 +0200 + +openjdk-6 (6b20-1.9.2-1) experimental; urgency=low + + * Upload to experimental. + + -- Matthias Klose <doko@ubuntu.com> Wed, 24 Nov 2010 05:29:43 +0100 + +openjdk-6 (6b20-1.9.2-0ubuntu1) maverick-security; urgency=low + + * IcedTea6 1.9.2 release. + - CVE-2010-3860: Fix IcedTea System property information leak via + public static. + * Build using Hotspot hs19. + * Start metacity using dbus-launch, when running the testsuite. LP: #632594. + + -- Matthias Klose <doko@ubuntu.com> Sun, 21 Nov 2010 18:30:39 +0100 + +openjdk-6 (6b20-1.9.1-1ubuntu3) maverick-security; urgency=low + + * Move all japanese man pages belonging to the jre into the -jre package. + Closes: #600765. + * Add -jdk replaces for -jre and -jre-headless. Closes: #600809. + + -- Matthias Klose <doko@ubuntu.com> Wed, 20 Oct 2010 12:51:34 +0200 + +openjdk-6 (6b20-1.9.1-1ubuntu1) maverick-security; urgency=low + + * Fix upgrade to symlinked timezone data. Closes: #600359. + * Move all japanese man pages belonging to the jre into the -jre package. + Closes: #600765. + + -- Matthias Klose <doko@ubuntu.com> Mon, 18 Oct 2010 16:07:48 +0200 + +openjdk-6 (6b20-1.9.1-1) experimental; urgency=low + + * Upload to experimental. + + -- Matthias Klose <doko@ubuntu.com> Tue, 12 Oct 2010 15:07:35 +0200 + +openjdk-6 (6b20-1.9.1-0ubuntu1) maverick-security; urgency=low + + * IcedTea6 1.9.1 release. + - Security updates: + - S6914943, CVE-2009-3555: TLS: MITM attacks via session renegotiation. + - S6559775, CVE-2010-3568: OpenJDK Deserialization Race condition. + - S6891766, CVE-2010-3554: OpenJDK corba reflection vulnerabilities. + - S6925710, CVE-2010-3562: OpenJDK IndexColorModel double-free. + - S6938813, CVE-2010-3557: OpenJDK Swing mutable static. + - S6957564, CVE-2010-3548: OpenJDK DNS server IP address information + leak. + - S6958060, CVE-2010-3564: OpenJDK kerberos vulnerability. + - S6963023, CVE-2010-3565: OpenJDK JPEG writeImage remote code execution. + - S6963489, CVE-2010-3566: OpenJDK ICC Profile remote code execution. + - S6966692, CVE-2010-3569: OpenJDK Serialization inconsistencies. + - S6622002, CVE-2010-3553: UIDefault.ProxyLazyValue has unsafe + reflection usage. + - S6623943: javax.swing.TimerQueue's thread occasionally fails to start. + - S6925672, CVE-2010-3561: Privileged ServerSocket.accept allows + receiving connections from any host. + - S6952017, CVE-2010-3549: HttpURLConnection chunked encoding issue + (Http request splitting). + - S6952603, CVE-2010-3551: NetworkInterface reveals local network + address to untrusted code. + - S6961084, CVE-2010-3541: limit setting of some request headers in + HttpURLConnection. + - S6963285, CVE-2010-3567: Crash in ICU Opentype layout engine due to + mismatch in character counts. + - S6980004, CVE-2010-3573: limit HTTP request cookie headers in + HttpURLConnection. + - S6981426, CVE-2010-3574: limit use of TRACE method in + HttpURLConnection. + - Plugin fixes. + - Backports from newer IcedTea releases. + + -- Matthias Klose <doko@ubuntu.com> Tue, 12 Oct 2010 12:13:40 +0200 + +openjdk-6 (6b20-1.9-1) experimental; urgency=low + + * Upload to experimental. + + -- Matthias Klose <doko@ubuntu.com> Tue, 07 Sep 2010 21:19:21 +0200 + +openjdk-6 (6b20-1.9-0ubuntu1) maverick; urgency=low + + * IcedTea6 1.9 release. + + -- Matthias Klose <doko@ubuntu.com> Tue, 07 Sep 2010 18:13:20 +0200 + +openjdk-6 (6b20~pre2-0ubuntu2) maverick; urgency=low + + * Update from the IcedTea6 trunk. + * Really let the build fail on armel. + + -- Matthias Klose <doko@ubuntu.com> Fri, 30 Jul 2010 16:55:38 +0200 + +openjdk-6 (6b20~pre2-0ubuntu1) maverick; urgency=high + + * Update from the IcedTea6 trunk. + - (CVE-2010-2783): IcedTea 'Extended JNLP Services' arbitrary file access. + - (CVE-2010-2548): IcedTea incomplete property access check for unsigned + applications + * openjdk-6-jre: Recommend ttf-dejavu-extra. LP: #569396. + * Explicitely fail the build on armel. The ARM assembler interpreter is + disabled and would a 3-5x performance regression compared to the current + 6b18 armel binaries in the archive. + + -- Matthias Klose <doko@ubuntu.com> Thu, 29 Jul 2010 00:10:53 +0200 + +openjdk-6 (6b20~pre1-2) experimental; urgency=low + + * Upload to experimental. + + -- Matthias Klose <doko@ubuntu.com> Thu, 15 Jul 2010 13:55:02 +0200 + +openjdk-6 (6b20~pre1-1ubuntu1) maverick; urgency=low + + * Include docs in the -doc package. LP: #600834. + * Update from the IcedTea6 trunk. + - Plugin and netx fixes. + - Don't link the plugin against the libxul libraries. Closes: #576361. + - More plugin cpu usage fixes. Closes: #584335, #587049. + - Plugin: fixes AppletContext.getApplets(). + * Fix Vcs-Bzr location. Closes: #530883. + * Search for unversioned llvm-config tool. + * Don't set XFILESEARCHPATH and NLSPATH on startup. LP: #586641. + * Fix chinese font metrics and prefer using 'WenQuanYi Micro Hei' font. + LP: #472845. + * Strip libjvm.so with --strip-debug instead of --strip-unneeded. + LP: #574997. + + -- Matthias Klose <doko@ubuntu.com> Thu, 15 Jul 2010 12:40:10 +0200 + +openjdk-6 (6b20~pre1-1) experimental; urgency=low + + * Upload to experimental. + + -- Matthias Klose <doko@ubuntu.com> Mon, 28 Jun 2010 00:50:58 +0200 + +openjdk-6 (6b20~pre1-0ubuntu2) maverick; urgency=low + + * Shark & CACAO build fixes. + + -- Matthias Klose <doko@ubuntu.com> Fri, 25 Jun 2010 02:27:10 +0200 + +openjdk-6 (6b20~pre1-0ubuntu1) maverick; urgency=low + + * Update to 6b20 code drop. + + -- Matthias Klose <doko@ubuntu.com> Wed, 14 Apr 2010 02:53:37 +0200 + +openjdk-6 (6b18-1.8-4) unstable; urgency=low + + * Update from the 1.8 branch. + - Plugin and netx fixes. + - Don't link the plugin against the libxul libraries. Closes: #576361. + - More plugin cpu usage fixes. Closes: #584335, #587049. + - Plugin: fixes AppletContext.getApplets(). + - Fix race conditions in plugin initialization code that were causing + hangs when loading multiple applets in parallel. + * Fix Vcs-Bzr location. Closes: #530883. + * Search for unversioned llvm-config tool. + * Don't set XFILESEARCHPATH and NLSPATH on startup. LP: #586641. + * Fix chinese font metrics and prefer using 'WenQuanYi Micro Hei' font. + LP: #472845. + * Strip libjvm.so with --strip-debug instead of --strip-unneeded. + LP: #574997. + * Don't turn on the ARM assembler interpreter when building the shark + VM. + + -- Matthias Klose <doko@ubuntu.com> Thu, 15 Jul 2010 00:40:13 +0200 + +openjdk-6 (6b18-1.8-3) unstable; urgency=low + + * Update from the 1.8 branch. + - Plugin fixes. LP: #597714. + * Add powerpcspe build fixes (Sebastian Andrzej Siewior). Closes: #586359. + * Work around build failure on buildds configured with low ARG_MAX + (Giovanni Mascellani). Closes: #575254. + + -- Matthias Klose <doko@ubuntu.com> Sun, 27 Jun 2010 10:16:27 +0200 + +openjdk-6 (6b18-1.8-2ubuntu3) maverick; urgency=low + + * Update from the 1.8 branch. + - Plugin fixes. LP: #597714. + * Add powerpcspe build fixes (Sebastian Andrzej Siewior). Closes: #586359. + * Work around build failure on buildds configured with low ARG_MAX + (Giovanni Mascellani). Closes: #575254. + + -- Matthias Klose <doko@ubuntu.com> Sun, 27 Jun 2010 10:16:27 +0200 + +openjdk-6 (6b18-1.8-2ubuntu2) maverick; urgency=low + + * Search for unversioned llvm-config tool. + + -- Matthias Klose <doko@ubuntu.com> Sun, 02 May 2010 12:03:01 +0200 + +openjdk-6 (6b18-1.8-2ubuntu1) maverick; urgency=low + + * Upload to maverick. + + -- Matthias Klose <doko@ubuntu.com> Sun, 02 May 2010 11:23:16 +0200 + +openjdk-6 (6b18-1.8-2) unstable; urgency=low + + * Update from the 1.8 branch. + - Fix build on Hitachi SH. Closes: #575346. + - Shark and Zero fixes. + * Build shark using llvm-2.7. + * Don't use shark to run the test harness when testing the shark build. + * README.Debian: Add paragraph about debugging the IcedTea NPPlugin. + + -- Matthias Klose <doko@ubuntu.com> Sat, 01 May 2010 12:35:19 +0200 + +openjdk-6 (6b18-1.8-1) unstable; urgency=low + + * Upload to unstable. + + -- Matthias Klose <doko@ubuntu.com> Wed, 14 Apr 2010 02:53:37 +0200 + +openjdk-6 (6b18-1.8-0ubuntu1) lucid; urgency=low + + * Update IcedTea6 to the icedtea6-1.8 release. + * Fix builds on Ubuntu/dapper and Debian/lenny. + * On hppa, configure --without-rhino --disable-plugin. + * Fix Hitachi SH configury. Closes: #575346. + * Start a window manager when running the tests. Prefer metacity, + as more tests pass with it. + * Let XToolkit.isTraySupported() return true, if Compiz is running. + Works around sun#6438179. LP: #300948. + * Make <java_home>/jre/lib/security/nss.cfg a config file. + * Fail in the configuration of the packages, if /proc is not mounted. + java currently uses tricks to find its own shared libraries depending + on the path of the binary. Will be changed in OpenJDK7. Closes: #576453. + * Fix PR icedtea/469, testsuite failures with the NSS based security + provider. LP: #556549. + * Do not pass LD_LIBRARY_PATH from the plugin to the java process. + While libnss3.so gets loaded from /usr/lib, the dependent libraries + are loaded from MOZILLA_FIVE_HOME (See #561216 for the wrong firefox + config). LP: #561124. + Closes as well: LP: #551328, #554909, #560829, #549010, #553452. + * Always build shark with hs14. + + -- Matthias Klose <doko@ubuntu.com> Wed, 14 Apr 2010 01:53:33 +0200 + +openjdk-6 (6b18~pre4-1ubuntu1) lucid; urgency=low + + * Build-depend on xulrunner-1.9.2-dev instead of xulrunner-dev, + unexpectedly demoted to universe. + * icedtea6-plugin: Hardcode dependency on xulrunner-1.9.2. No way + to do better? See #552780. + * Fix builds on Ubuntu hardy. + + -- Matthias Klose <doko@ubuntu.com> Wed, 31 Mar 2010 22:21:49 +0200 + +openjdk-6 (6b18~pre4-1) unstable; urgency=high + + * Upload to unstable. + + -- Matthias Klose <doko@ubuntu.com> Wed, 31 Mar 2010 16:35:18 +0200 + +openjdk-6 (6b18~pre4-0ubuntu2) lucid; urgency=low + + * Fix typo in NPPlugin code. LP: #552287. + + -- Matthias Klose <doko@ubuntu.com> Wed, 31 Mar 2010 10:41:11 +0200 + +openjdk-6 (6b18~pre4-0ubuntu1) lucid; urgency=low + + [ Matthias Klose ] + * Update IcedTea6 form the 1.8 branch. + * SECURITY UPDATE: multiple upstream vulnerabilities. Upstream fixes: + - (CVE-2010-0837): JAR "unpack200" must verify input parameters (6902299). + - (CVE-2010-0845): No ClassCastException for HashAttributeSet constructors + if run with -Xcomp (6894807). + - (CVE-2010-0838): CMM readMabCurveData Buffer Overflow Vulnerability + (6899653). + - (CVE-2010-0082): Loader-constraint table allows arrays instead of + only the base-classes (6626217). + - (CVE-2010-0095): Subclasses of InetAddress may incorrectly interpret + network addresses (6893954) [ZDI-CAN-603]. + - (CVE-2010-0085): File TOCTOU deserialization vulnerability (6736390). + - (CVE-2010-0091): Unsigned applet can retrieve the dragged information + before drop action occurs (6887703). + - (CVE-2010-0088): Inflater/Deflater clone issues (6745393). + - (CVE-2010-0084): Policy/PolicyFile leak dynamic ProtectionDomains + (6633872). + - (CVE-2010-0092): AtomicReferenceArray causes SIGSEGV -> SEGV_MAPERR + error (6888149). + - (CVE-2010-0094): Deserialization of RMIConnectionImpl objects should + enforce stricter checks (6893947) [ZDI-CAN-588]. + - (CVE-2010-0093): System.arraycopy unable to reference elements + beyond Integer.MAX_VALUE bytes (6892265). + - (CVE-2010-0840): Applet Trusted Methods Chaining Privilege Escalation + Vulnerability (6904691). + - (CVE-2010-0848): AWT Library Invalid Index Vulnerability (6914823). + - (CVE-2010-0847): ImagingLib arbitrary code execution vulnerability + (6914866). + - (CVE-2009-3555): TLS: MITM attacks via session renegotiation. + - 6639665: ThreadGroup finalizer allows creation of false root + ThreadGroups. + - 6898622: ObjectIdentifer.equals is not capable of detecting incorrectly. + encoded CommonName OIDs. + - 6910590: Application can modify command array in ProcessBuilder. + - 6909597: JPEGImageReader stepX Integer Overflow Vulnerability. + - 6932480: Crash in CompilerThread/Parser. Unloaded array klass? + - 6898739: TLS renegotiation issue. + + [ Torsten Werner ] + * Switch off IPV6_V6ONLY for IN6_IS_ADDR_UNSPECIFIED addresses, too. + (Closes: #575163) + + -- Matthias Klose <doko@ubuntu.com> Wed, 31 Mar 2010 02:34:04 +0200 + +openjdk-6 (6b18~pre3-1) unstable; urgency=low + + [ Matthias Klose ] + * Update IcedTea build infrastructure (20100321). + * Update support for SH4 (Nobuhiro Iwamatsu). + * Handle renaming of the plugin name. + + [ Torsten Werner ] + * Improve patch for IPv4 mapped IPv6 addresses even more. + (Closes: #573742) + + -- Matthias Klose <doko@ubuntu.com> Sun, 21 Mar 2010 22:52:12 +0100 + +openjdk-6 (6b18~pre2-1ubuntu2) lucid; urgency=low + + * Fix build failure on ARM. + + -- Matthias Klose <doko@ubuntu.com> Fri, 12 Mar 2010 15:19:13 +0100 + +openjdk-6 (6b18~pre2-1ubuntu1) lucid; urgency=low + + * Upload to lucid. + + -- Matthias Klose <doko@ubuntu.com> Wed, 10 Mar 2010 23:34:57 +0100 + +openjdk-6 (6b18~pre2-1) unstable; urgency=low + + * Update IcedTea build infrastructure (20100310). + * Disable building the plugin the plugin on alpha (borked xulrunner + packaging using binary indep packages). + * Use a two stage build on alpha. + * Add note about the reparenting WM workaround. Closes: #573026. + * Prefer Sazanami instead of Kochi for Japanese fonts (Hideki Yamane). + Closes: #572511. + * openjdk-6-doc: Don't compress package-list files. Closes: #567899. + + -- Matthias Klose <doko@ubuntu.com> Wed, 10 Mar 2010 11:19:19 +0100 + +openjdk-6 (6b18~pre1-4) unstable; urgency=low + + * Improve patch for IPv4 mapped IPv6 addresses. + + -- Torsten Werner <twerner@debian.org> Sun, 07 Mar 2010 01:14:36 +0100 + +openjdk-6 (6b18~pre1-3) unstable; urgency=low + + * Add a patch for improved handling of IPv4 mapped IPv6 addresses. + (Closes: #560056, #561930, #563699, #563946) + + -- Torsten Werner <twerner@debian.org> Tue, 02 Mar 2010 23:46:57 +0100 + +openjdk-6 (6b18~pre1-2) unstable; urgency=low + + * Change Build-Depends: ant1.7-optional because of a bus error in gij. + + -- Torsten Werner <twerner@debian.org> Mon, 01 Mar 2010 07:17:16 +0100 + +openjdk-6 (6b18~pre1-1ubuntu1) lucid; urgency=low + + * Ignore error code running ant -diagnostics. + * Build-depend on ant-optional. + * Disable the cacao build on armel, fails to build with the non + bootstrap build. + + -- Matthias Klose <doko@ubuntu.com> Sat, 20 Feb 2010 15:36:06 +0100 + +openjdk-6 (6b18~pre1-1) unstable; urgency=low + + * Upload to unstable. + + -- Matthias Klose <doko@ubuntu.com> Fri, 19 Feb 2010 21:52:32 +0100 + +openjdk-6 (6b18~pre1-0ubuntu1) lucid; urgency=low + + * New Openjdk6 b18 source code drop. + * Use mangled copy of rhino. Closes: #512970. LP: #255149. + + -- Matthias Klose <doko@ubuntu.com> Fri, 19 Feb 2010 18:17:23 +0100 + +openjdk-6 (6b17-1.7-1ubuntu1) lucid; urgency=low + + * ARM Thumb2 updates. + * Test build using Hotspt hs14 on ix86. + + -- Matthias Klose <doko@ubuntu.com> Sun, 31 Jan 2010 21:56:59 +0100 + +openjdk-6 (6b18~pre1-1) unstable; urgency=low + + * Upload to unstable. + + -- Matthias Klose <doko@ubuntu.com> Fri, 19 Feb 2010 21:52:32 +0100 + +openjdk-6 (6b18~pre1-0ubuntu1) lucid; urgency=low + + * New Openjdk6 b18 source code drop. + * Use mangled copy of rhino. Closes: #512970. LP: #255149. + + -- Matthias Klose <doko@ubuntu.com> Fri, 19 Feb 2010 18:17:23 +0100 + +openjdk-6 (6b17-1.7-1ubuntu1) lucid; urgency=low + + * ARM Thumb2 updates. + * Test build using Hotspt hs14 on ix86. + + -- Matthias Klose <doko@ubuntu.com> Sun, 31 Jan 2010 21:56:59 +0100 + +openjdk-6 (6b17-1.7-1) unstable; urgency=low + + * Upload to unstable. + + -- Matthias Klose <doko@ubuntu.com> Wed, 27 Jan 2010 23:44:47 +0100 + +openjdk-6 (6b17-1.7-0ubuntu1) lucid; urgency=low + + * IcedTea6 1.7 release. + * Don't try to load libjpeg7; still building with libjpeg62. Closes: #563999. + * Run the testsuite on sh4. + * Ubuntu only: Implement an execute bit checker for the Non-Exec Policy + - debian/JB-java.desktop.in: update mime handler to use new launcher. + * armel: Apply the thumb2 patches from the trunk, plus proposed patches + for the trunk. + + -- Matthias Klose <doko@ubuntu.com> Wed, 27 Jan 2010 22:48:24 +0100 + +openjdk-6 (6b17-0ubuntu1) lucid; urgency=low + + * Build from the IcedTea6-1.7 branch. + * Don't build the plugin on sparc64. + * Enable the NPPlugin. + * Add support for SH4 (Nobuhiro Iwamatsu). + * Fix crash in the ARM assembler interpreter (Edward Nevill). + + -- Matthias Klose <doko@ubuntu.com> Wed, 06 Jan 2010 15:52:50 +0100 + +openjdk-6 (6b17~pre3-1ubuntu2) lucid; urgency=low + + * Update IcedTea build infrastructure (20091224). + * Explicitely build-depend on x11-xkb-utils (xkbcomp is needed by + xvfb-run). + + -- Matthias Klose <doko@ubuntu.com> Thu, 24 Dec 2009 12:43:00 +0100 + +openjdk-6 (6b17~pre3-1ubuntu1) lucid; urgency=low + + * Upload to lucid. + + -- Matthias Klose <doko@ubuntu.com> Fri, 18 Dec 2009 10:40:05 +0100 + +openjdk-6 (6b17~pre3-1) unstable; urgency=low + + * Update IcedTea build infrastructure (20091218). + * Install docs into the openjdk-6-jre-headless directory instead of + openjdk-6-jre. + + -- Matthias Klose <doko@ubuntu.com> Fri, 18 Dec 2009 10:00:08 +0100 + +openjdk-6 (6b17~pre2-1ubuntu1) lucid; urgency=low + + * Update IcedTea build infrastructure (20091215). + * Fix cacao build on armel with current optimization defaults. + + -- Matthias Klose <doko@ubuntu.com> Tue, 15 Dec 2009 16:41:12 +0100 + +openjdk-6 (6b17~pre2-1) unstable; urgency=low + + * Upload to unstable. + + -- Matthias Klose <doko@ubuntu.com> Mon, 09 Nov 2009 21:50:52 +0100 + +openjdk-6 (6b17~pre2-0ubuntu3) lucid; urgency=low + + * Security updates: + - (CVE-2009-3728) ICC_Profile file existence detection information leak + (6631533). + - (CVE-2009-3885) BMP parsing DoS with UNC ICC links (6632445). + - (CVE-2009-3881) resurrected classloaders can still have children + (6636650). + - (CVE-2009-3882) Numerous static security flaws in Swing (findbugs) + (6657026). + - (CVE-2009-3883) Mutable statics in Windows PL&F (findbugs) (6657138). + - (CVE-2009-3880) UI logging information leakage (6664512). + - (CVE-2009-3879) GraphicsConfiguration information leak (6822057). + - (CVE-2009-3884) zoneinfo file existence information leak (6824265). + - (CVE-2009-2409) deprecate MD2 in SSL cert validation (Kaminsky) (6861062). + - (CVE-2009-3873) JPEG Image Writer quantization problem (6862968). + - (CVE-2009-3875) MessageDigest.isEqual introduces timing attack + vulnerabilities (6863503). + - (CVE-2009-3876, CVE-2009-3877) OpenJDK ASN.1/DER input stream parser + denial of service (6864911). + - (CVE-2009-3869) JRE AWT setDifflCM stack overflow (6872357). + - (CVE-2009-3874) ImageI/O JPEG heap overflow (6874643. + - (CVE-2009-3871) JRE AWT setBytePixels heap overflow (6872358). + * Update IcedTea build infrastructure (20091109). + * Use hs16 on armel. + + -- Matthias Klose <doko@ubuntu.com> Mon, 09 Nov 2009 17:48:43 +0100 + +openjdk-6 (6b17~pre2-0ubuntu2) lucid; urgency=low + + * Don't use hs16 on armel and sparc. + + -- Matthias Klose <doko@ubuntu.com> Mon, 02 Nov 2009 15:33:00 +0100 + +openjdk-6 (6b17~pre2-0ubuntu1) lucid; urgency=low + + * New code drop (b17). + * Bump hotspot to hs16. + * Update IcedTea build infrastructure (20091031). + * Set priority of default -jre and -jdk packages to optional. + * Fix binary-all to binary-any dependencies. Closes: #550680. + + -- Matthias Klose <doko@ubuntu.com> Sat, 31 Oct 2009 19:30:54 +0100 + +openjdk-6 (6b16-1.6.1-2) unstable; urgency=medium + + * Build-depend on xulrunner-dev (>= 1.9.1.3-3). + + -- Matthias Klose <doko@ubuntu.com> Sun, 11 Oct 2009 21:34:48 +0200 + +openjdk-6 (6b16-1.6.1-1ubuntu3) karmic; urgency=low + + [Matthias Klose] + * On armel and powerpc, build an additional VM using shark in the + openjdk-6-jre-zero package (java -shark <args>). Requires llvm-2.6. + * Hide the desktop menu entry for WebStart. LP: #222180. + * Don't provide java-virtual-machine anymore. + + [Edward Nevill] + * Avoid stack overflows in the arm interpreter. + + -- Matthias Klose <doko@ubuntu.com> Thu, 08 Oct 2009 12:41:46 +0200 + +openjdk-6 (6b16-1.6.1-1ubuntu2) karmic; urgency=low + + * Support PKCS11 cryptography via NSS, now allowing import of all + certificates from ca-certificates. + * Remove Michael Koch from uploaders, request by himself. + * Add the doc dir symlink for openjdk-6-jre-zero when the package + is built with shark support. + + -- Matthias Klose <doko@ubuntu.com> Mon, 28 Sep 2009 21:55:08 +0200 + +openjdk-6 (6b16-1.6.1-1ubuntu1) karmic; urgency=low + + * Fix dependency on the java bridge packages. + * debian/rules: Conditionalize stuff so that the recent release + is never mentioned. + * Remove obsolete patches in debian/patches. + * Rebuild on armel to fix up libffi for the soft float abi. + * For jaunty builds, fix IcedTeaPlugin failure to start with xulrunner 1.9.1 + (LP: #359407). + - debian/patches/icedtea-plugin-use-runtime-nsIProcess-IID.diff: Add. + - debian/rules: Apply it for jaunty builds. + * Use pulseaudio as default serviceprovider for + javax.sound.midi.MidiSystem and javax.sound.sampled.AudioSystem. + LP: #407299. + + -- Matthias Klose <doko@ubuntu.com> Sat, 26 Sep 2009 16:01:48 +0200 + +openjdk-6 (6b16-1.6.1-1) unstable; urgency=low + + * Upload to Debian unstable. + + -- Matthias Klose <doko@ubuntu.com> Tue, 15 Sep 2009 02:17:03 +0200 + +openjdk-6 (6b16-1.6.1-0ubuntu1) karmic; urgency=low + + * Update IcedTea6 to the 1.6.1 release. + * Work around GCC PR target/41327, build the JDK on s390 with -O2. + + -- Matthias Klose <doko@ubuntu.com> Thu, 10 Sep 2009 01:55:08 +0200 + +openjdk-6 (6b16-1.6-1) unstable; urgency=low + + * Update IcedTea6 to the 1.6 release. + * Fix GCC build dependencies. + + -- Matthias Klose <doko@ubuntu.com> Wed, 09 Sep 2009 22:18:38 +0200 + +openjdk-6 (6b16-1.6~pre2-1) unstable; urgency=low + + * Upload to unstable. + + -- Matthias Klose <doko@ubuntu.com> Fri, 28 Aug 2009 19:04:31 +0200 + +openjdk-6 (6b16-1.6~pre2-0ubuntu1) karmic; urgency=low + + * Update IcedTea from the 1.6 release branch: + - Fix buffer overflow in debugger's socket handler (Kees Cook). + https://bugs.openjdk.java.net/show_bug.cgi?id=100103. LP: #409736. + - plugin fixes. + * Move the pulseaudio recommendation to a suggestion, don't build-depend + on pulseaudio. Closes: #539394. LP: #361408. + * Build for armv6 (on armel). + + [ Kees Cook ] + * debian/rules: Re-enable fortification and stack protector + (LP: #330713). + * Adding stack markings to the x86 assembly for not using executable + stack. LP: #419018. + + -- Matthias Klose <doko@ubuntu.com> Fri, 28 Aug 2009 18:51:34 +0200 + +openjdk-6 (6b16-1.6~pre1-0ubuntu1) karmic; urgency=low + + * Test build (icedtea6-1.6 release branch). + + -- Matthias Klose <doko@ubuntu.com> Fri, 21 Aug 2009 19:44:42 +0200 + +openjdk-6 (6b16~pre5-0ubuntu2) karmic; urgency=low + + * Add explicit build dependency on libgtk2.0-dev. + + -- Matthias Klose <doko@ubuntu.com> Thu, 06 Aug 2009 11:39:14 +0200 + +openjdk-6 (6b16~pre5-0ubuntu1) karmic; urgency=low + + * Bump hotspot to hs14b16. + * Update IcedTea build infrastructure (20090805). + * patches/java-access-bridge-security.patch: Update. + * Build-depend on xulrunner-dev instead of xulrunner-1.9-dev on karmic. + * Don't recommend the jck fonts anymore, just suggest them; the appropriate + fonts are installed as dependencies of the language packs. + + -- Matthias Klose <doko@ubuntu.com> Thu, 06 Aug 2009 10:27:09 +0200 + +openjdk-6 (6b16~pre4-0ubuntu7) karmic; urgency=low + + * Build using GCC-4.4 on sparc as well, require 4.4.1. + + -- Matthias Klose <doko@ubuntu.com> Thu, 23 Jul 2009 18:23:14 +0200 + +openjdk-6 (6b16~pre4-0ubuntu6) karmic; urgency=low + + * Fix build failure building the zero VM. + + -- Matthias Klose <doko@ubuntu.com> Thu, 16 Jul 2009 09:49:36 -0400 + +openjdk-6 (6b16~pre4-0ubuntu5) karmic; urgency=low + + [Matthias Klose] + * Update IcedTea build infrastructure (20090715). + * Tighten build dependency on llvm-dev. + + [Edward Nevill] + * Add armv4 compatibility. + + -- Matthias Klose <doko@ubuntu.com> Wed, 15 Jul 2009 15:40:44 -0400 + +openjdk-6 (6b16~pre4-0ubuntu4) karmic; urgency=low + + [Edward Nevill] + * Added Bytecode Interpreter Generator. + * Added ARM templates for above. + * Removed old optimised ARM assebler. + * Added -g0 because of problems with ld linking -g. + * Changed alignment to 64 now that as bug is fixed. + + [Matthias Klose] + * Update IcedTea build infrastructure (20090710). + * Let the -jre package depend on the access-bridge package, not the + -jre-headless package. LP: #395074. + * Suggested by Ed Nevill: + - Pass -timeout:3 when running the jtreg testsuite on zero architectures. + - Pass -Xmx256M -vmoption:-Xmx256M on armel for the jtreg testsuite run. + * Tighten build dependency on llvm-dev. + + -- Matthias Klose <doko@ubuntu.com> Fri, 03 Jul 2009 18:32:50 +0200 + +openjdk-6 (6b16~pre4-0ubuntu3) karmic; urgency=low + + * Update zero-port-opt patch on armel. + + -- Matthias Klose <doko@ubuntu.com> Wed, 24 Jun 2009 10:48:48 +0200 + +openjdk-6 (6b16~pre4-0ubuntu2) karmic; urgency=low + + * Update IcedTea build infrastructure (20090623). + * Reapply the zero-port-opt patch on armel. + * Do not use the IPA Mona font family by default. Closes: #521233. + * Build cacao with -fno-strict-aliasing. + + -- Matthias Klose <doko@ubuntu.com> Tue, 23 Jun 2009 16:23:38 +0200 + +openjdk-6 (6b16-4) unstable; urgency=medium + + * Build the zero binary package when building with shark. + * Build-depend on cpio. Closes: #532963. + + -- Matthias Klose <doko@ubuntu.com> Tue, 16 Jun 2009 07:52:19 +0200 + +openjdk-6 (6b16-3) unstable; urgency=low + + * Update IcedTea build infrastructure (20090612). + * Install the libaccess-bridge-java* symlinks again. + * Build zero on ix86 architectures with JIT support (shark). To use the zero + build without shark, use the `-Xint' option to operate in interpreted-only + mode. + + -- Matthias Klose <doko@ubuntu.com> Fri, 12 Jun 2009 17:31:34 +0200 + +openjdk-6 (6b16-2) unstable; urgency=low + + * Don't install libaccess-bridge-java* symlinks until + libaccess-bridge-java-jni is available on all architectures. + * Add missing build dependency on cacao-source. + + -- Matthias Klose <doko@ubuntu.com> Mon, 18 May 2009 14:02:59 +0200 + +openjdk-6 (6b16-1) unstable; urgency=low + + * Upload to unstable, based in 6b16 and IcedTea 1.5. + + -- Matthias Klose <doko@ubuntu.com> Sun, 17 May 2009 23:02:46 +0200 + +openjdk-6 (6b16~pre3-0ubuntu1) karmic; urgency=low + + * Update to hotspot hs14b15. + * Provide symlink for libjava-access-bridge-jni.so. LP: #375347. + + -- Matthias Klose <doko@ubuntu.com> Fri, 15 May 2009 00:41:24 +0200 + +openjdk-6 (6b16~pre2-0ubuntu3) karmic; urgency=low + + * Update IcedTea build infrastructure (20090513). + * Fix build failure when xvfb-run doesn't work, trying to access a + non-existing directory. + + -- Matthias Klose <doko@ubuntu.com> Wed, 13 May 2009 23:01:23 +0200 + +openjdk-6 (6b16~pre2-0ubuntu2) karmic; urgency=low + + * Add libffi-dev as architecture independent build dependency. + + -- Matthias Klose <doko@ubuntu.com> Mon, 11 May 2009 08:41:42 +0200 + +openjdk-6 (6b16~pre2-0ubuntu1) karmic; urgency=low + + * Update to re-tagged code drop (b16). + * Update IcedTea build infrastructure (20090510). + * Remove patches integrated in IcedTea. + * Remove GCJ Web Plugin support. + * Remove build infrastructure to build additional VM's, integrated + in IcedTea. + * Stop building the openjdk-6-source-files package. + * README.Debian: Document using the different VM's. + * Use GCC-4.3 on sparc, ICE with GCC-4.4. + * Fix problem with the ARM assembler interpreter, when executing a 'new' + bytecode with a double on the top of the stack (Edward Nevill). + * Run the testsuite for the zero build on ix86 architectures. + + -- Matthias Klose <doko@ubuntu.com> Sun, 10 May 2009 23:37:42 +0200 + +openjdk-6 (6b16~pre1-0ubuntu1) karmic; urgency=low + + * New code drop (b16). + * Update IcedTea build infrastructure (20090429). + * Merge changes from 6b14-1.4.1. + * Fix section names (using the java section). + * Remove all UTF-8 sequence definitions from the font configuration. + + -- Matthias Klose <doko@ubuntu.com> Wed, 29 Apr 2009 11:33:07 +0200 + +openjdk-6 (6b14-1.4.1-0ubuntu9) jaunty; urgency=low + + * Reenable the testsuite (revert the change in last upload). + * Apply fix for the ARM bytecode interpreter (Edward Nevill). + + -- Matthias Klose <doko@ubuntu.com> Sat, 18 Apr 2009 11:24:27 +0200 + +openjdk-6 (6b14-1.4.1-0ubuntu7) jaunty; urgency=low + + * Don't use some indian fonts with diverging font metrics for the + latin-1.UTF-8 encoding. LP: #289784. + * Disable running the testsuite for this build (no code changes compared + to the previous upload). + + -- Matthias Klose <doko@ubuntu.com> Tue, 14 Apr 2009 11:46:25 +0200 + +openjdk-6 (6b14-1.4.1-0ubuntu6) jaunty; urgency=low + + * Fix native2ascii jdk test case, which let the jdk testsuite fail. + + -- Matthias Klose <doko@ubuntu.com> Fri, 10 Apr 2009 11:58:44 +0200 + +openjdk-6 (6b14-1.4.1-0ubuntu5) jaunty; urgency=low + + [Matthias Klose] + * Update to the final CACAO 0.99.4 release. + * Security Vulnerability Fixes for OpenJDK: + - 6522586: Enforce limits on Font creation. + - 6536193: flaw in UTF8XmlOutput. + - 6610888: Potential use of cleared of incorrect acc in JMX Monitor. + - 6610896: JMX Monitor handles thread groups incorrectly. + - 6630639: lightweight HttpServer leaks file descriptors on no-data + connections. + - 6632886: Font.createFont can be persuaded to leak temporary files. + - 6636360: compiler/6595044/Main.java test fails with 64bit java on + solaris-sparcv9 with SIGSEGV. + - 6652463: MediaSize constructors allow to redefine the mapping of + standard MediaSizeName values. + - 6652929: Font.createFont(int,File) trusts File.getPath. + - 6656633: getNotificationInfo methods static mutable (findbugs). + - 6658158: Mutable statics in SAAJ (findbugs). + - 6658163: txw2.DatatypeWriter.BUILDIN is a mutable static (findbugs). + - 6691246: Thread context class loader can be set using JMX remote + ClientNotifForwarded. + - 6717680: LdapCtx does not close the connection if initialization fails. + - 6721651: Security problem with out-of-the-box management. + - 6737315: LDAP serialized data vulnerability. + - 6792554: Java JAR Pack200 header checks are insufficent. + - 6804996: JWS PNG Decoding Integer Overflow [V-flrhat2ln8]. + - 6804997: JWS GIF Decoding Heap Corruption [V-r687oxuocp]. + - 6804998: JRE GIF Decoding Heap Corruption [V-y6g5jlm8e1]. + * Add security patch for the lcms library. + * Add accessibility patches java-access-bridge-security.patch and + accessible-toolkit.patch. + * Merge fixes for testsuite failures from the IcedTea6 branch. + * Merge the proxy support for the plugin from the IcedTea6 branch. + * Merge http://icedtea.classpath.org/hg/release/icedtea6-1.4.1/rev/546ef0cdee06 + (TJ). LP: #344705. + * Add a Xb-Npp-Description for the IcedTea plugin. LP: #272010. + + [Edward Nevill] + * Put VFP back in - selects VFP / novfp autmatically + * More assembler optimisations + + -- Matthias Klose <doko@ubuntu.com> Thu, 09 Apr 2009 14:14:12 +0200 + +openjdk-6 (6b14-1.4.1-0ubuntu4) jaunty; urgency=low + + * Disable the additional zero JVM on sparc. + * patches/hotspot/default/icedtea-includedb.patch: Add missing include in + openjdk/hotspot/src/share/vm/includeDB_core. + * Fix build failure of the zero VM on lpia with a fixed GCC. + + -- Matthias Klose <doko@ubuntu.com> Fri, 13 Mar 2009 16:39:27 +0100 + +openjdk-6 (6b14-1.4.1-0ubuntu3) jaunty; urgency=low + + * Build the Zero/Shark VM as an additional JVM (call as `java -zero'). + + -- Matthias Klose <doko@ubuntu.com> Sat, 07 Mar 2009 20:54:28 +0100 + +openjdk-6 (6b14-1.4.1-0ubuntu2) jaunty; urgency=low + + * Fix zero-port-opt patching (build failure on armel). + + -- Matthias Klose <doko@ubuntu.com> Thu, 05 Mar 2009 18:19:18 +0100 + +openjdk-6 (6b14-1.4.1-0ubuntu1) jaunty; urgency=low + + * Update IcedTea to the 1.4.1 release. + * Build the Cacao VM as an additional JVM (call as `java -cacao'). + * Build in separate build directory. + + -- Matthias Klose <doko@ubuntu.com> Thu, 05 Mar 2009 15:16:02 +0100 + +openjdk-6 (6b14-1.5~pre1-5) unstable; urgency=low + + * Fix build failure on armel. + * Require the final cacao-0.99.4 release. + * Add /usr/lib/jni to the library path. Closes: #517338. + + -- Matthias Klose <doko@ubuntu.com> Tue, 17 Mar 2009 09:37:20 +0100 + +openjdk-6 (6b14-1.5~pre1-4) unstable; urgency=low + + * Disable the additional zero JVM on sparc. + * Fix casts in hotspot on s390. Closes: #518823. + * Add special flags for javac on s390 to work around a VM problem with bad + code generation during inlining. + * Run the testsuites for the default VM on all architectures. + * Update IcedTea (20090314). + + -- Matthias Klose <doko@ubuntu.com> Sat, 14 Mar 2009 18:29:49 +0100 + +openjdk-6 (6b14-1.5~pre1-3) unstable; urgency=low + + * Don't configure the additional zero JVM with --enable-shark, currently + fails to build. + * Don't build the JDK when building the additional zero JVM. + + -- Matthias Klose <doko@ubuntu.com> Sat, 07 Mar 2009 21:11:16 +0100 + +openjdk-6 (6b14-1.5~pre1-2) experimental; urgency=low + + * Build the Zero/Shark VM as an additional JVM (call as `java -zero'). + + -- Matthias Klose <doko@ubuntu.com> Fri, 06 Mar 2009 11:16:07 +0100 + +openjdk-6 (6b14-1.5~pre1-0ubuntu1) jaunty; urgency=low + + * Update hotspot to 14.0-b10. + * Update IcedTea (20090305). + * Build the Cacao VM as an additional JVM (call as `java -cacao'). + * Build in separate build directory. + + -- Matthias Klose <doko@ubuntu.com> Thu, 05 Mar 2009 15:16:02 +0100 + +openjdk-6 (6b14-0ubuntu17) jaunty; urgency=low + + [ Edward Nevill ] + * Remove VFP from asm loop + * Disble the mauve testsuite for armel. + + [Matthias Klose] + * Update IcedTea (20090302). + + -- Matthias Klose <doko@ubuntu.com> Mon, 02 Mar 2009 16:18:01 +0100 + +openjdk-6 (6b14-0ubuntu16) jaunty; urgency=low + + * Regenerate auto files. + + -- Matthias Klose <doko@ubuntu.com> Wed, 18 Feb 2009 15:20:10 +0100 + +openjdk-6 (6b14-0ubuntu15) jaunty; urgency=low + + [ Edward Nevill ] + * Added ARM assembler interpreter loop + * mauve and jtreg removed again for alpha release + + [Matthias Klose] + * Update IcedTea (20090218). + + -- Matthias Klose <doko@ubuntu.com> Wed, 18 Feb 2009 13:35:02 +0100 + +openjdk-6 (6b14-0ubuntu14) jaunty; urgency=low + + * Configure with --disable-nio2 on armel as well. + + -- Matthias Klose <doko@ubuntu.com> Fri, 13 Feb 2009 10:13:55 +0100 + +openjdk-6 (6b14-0ubuntu13) jaunty; urgency=low + + * Really configure with --disable-nio2. + + -- Matthias Klose <doko@ubuntu.com> Thu, 12 Feb 2009 17:26:43 +0100 + +openjdk-6 (6b14-0ubuntu12) jaunty; urgency=low + + * Configure with --disable-nio2. + * Run mauve and jtreg testsuites on armel. + + -- Matthias Klose <doko@ubuntu.com> Wed, 11 Feb 2009 13:00:15 +0100 + +openjdk-6 (6b14-0ubuntu11) jaunty; urgency=low + + [Edward Nevill] + * Performance improvements for the zero build (currently applied + on armel only). + + [Matthias Klose] + * Update IcedTea (20090210). + + -- Matthias Klose <doko@ubuntu.com> Tue, 10 Feb 2009 15:29:22 +0100 + +openjdk-6 (6b14-0ubuntu10) jaunty; urgency=low + + * Explicitely remove PulseAudioMuteControl.java. + + -- Matthias Klose <doko@ubuntu.com> Mon, 26 Jan 2009 22:09:21 +0100 + +openjdk-6 (6b14-0ubuntu9.1) jaunty; urgency=low + + * Test build. + + -- Matthias Klose <doko@ubuntu.com> Sun, 25 Jan 2009 17:03:51 +0100 + +openjdk-6 (6b14-0ubuntu9) jaunty; urgency=low + + * Update IcedTea build infrastructure (20090125). + * Run the jtreg testsuite for cacao builds, save all test logs. + + -- Matthias Klose <doko@ubuntu.com> Sun, 25 Jan 2009 15:40:52 +0100 + +openjdk-6 (6b14-0ubuntu8) jaunty; urgency=low + + * Fix merge error, don't apply patches twice. + + -- Matthias Klose <doko@ubuntu.com> Mon, 19 Jan 2009 01:15:19 +0100 + +openjdk-6 (6b14-0ubuntu7) jaunty; urgency=low + + * debian/rules: Call dh_desktop. LP: #309999. + * Add dependency on libjpeg62 for the -headless package. LP: #318383. + * Test some jtreg tests which fail in samevm mode in a separate VM. + * Build all with -fno-stack-protector -U_FORTIFY_SOURCE. + * Include jtr files of failed tests in the -jdk package. + + -- Matthias Klose <doko@ubuntu.com> Mon, 19 Jan 2009 00:23:22 +0100 + +openjdk-6 (6b14-0ubuntu6) jaunty; urgency=low + + * The -source package now contains all source files. Closes: #504568. + * The 6b14 build fixes the following security related issues (sun bug number, + CVE, description): + - 6588160, CVE-2008-5348: jaas krb5 client leaks OS-level UDP sockets. + - 6497740, CVE-2009-5349: Limit the size of RSA public keys. + - 6484091, CVE-2008-5350: FileSystemView leaks directory info. + - 4486841, CVE-2008-5351: UTF-8 decoder needed adhere to Unicode 3.0.1 + fixes. + - 6755943, CVE-2008-5352: JAR decompression should enforce stricter header + checks. + - 6734167, CVE-2008-5353: Calendar.readObject allows elevation of + privileges. + - 6733959, CVE-2008-5354: Insufficient checks for "Main-Class" manifest + entry in JAR files + - 6751322, CVE-2008-5356: Sun Java JRE TrueType Font Parsing Heap Overflow. + - 6733336, CVE-2008-5357: Crash on malformed font. + - 6766136, CVE-2008-5358: corrupted gif image may cause crash in java + splashscreen library. + - 6726779, CVE-2008-5359: ConvolveOp on USHORT raster can cause the JVM + crash. + - 6721753, CVE-2008-5360: File.createTempFile produces guessable file names. + - 6592792: Add com.sun.xml.internal to the "package.access" property in + $JAVA_HOME/lib/security/java.security. + * Regenerate the control file. + + -- Matthias Klose <doko@ubuntu.com> Tue, 13 Jan 2009 15:04:36 +0100 + +openjdk-6 (6b14-0ubuntu2~ppa1) intrepid; urgency=low + + * Upload to the OpenJDK PPA for intrepid. + + -- Matthias Klose <doko@ubuntu.com> Tue, 13 Jan 2009 13:28:38 +0100 + +openjdk-6 (6b14-0ubuntu5) jaunty; urgency=low + + * Update IcedTea build infrastructure (20090113). + * Rebuild with updated nss/nspr packages. + * Update debug patches. + * debian/patches/nonreparenting-wm.diff: If the _JAVA_AWT_WM_NONREPARENTING + environment variable is set, disable all workarounds causing blank windows + in non-reparentizing window managers (Bernhard R. Link). Closes: #508650. + * Fix location of plugin for Debian. Closes: #505726. + * Let the -jdk package provide java-compiler. Closes: #507641. + + -- Matthias Klose <doko@ubuntu.com> Tue, 13 Jan 2009 10:18:44 +0100 + +openjdk-6 (6b14-0ubuntu4) jaunty; urgency=low + + * Use a default jvm.cfg not only for java, but for all jdk tools. + LP: #288616. + * Update IcedTea build infrastructure (20081223). + + -- Matthias Klose <doko@ubuntu.com> Tue, 23 Dec 2008 09:24:23 +0100 + +openjdk-6 (6b14-0ubuntu3) jaunty; urgency=low + + * Update IcedTea build infrastructure (20081217). + * Add support for PARISC. + * Use a default jvm.cfg if the jvm.cfg doesn't yet exist after unpacking + the runtime package. LP: #288616. + + -- Matthias Klose <doko@ubuntu.com> Wed, 17 Dec 2008 09:58:26 +0100 + +openjdk-6 (6b14~pre1-0ubuntu2) jaunty; urgency=low + + * Install hotspot tarball in -source-files package. + * Fix build failure on sparc. + + -- Matthias Klose <doko@ubuntu.com> Fri, 05 Dec 2008 09:43:51 +0100 + +openjdk-6 (6b14~pre1-0ubuntu1) jaunty; urgency=low + + * New code drop (b14). + * Update IcedTea build infrastructure (20081204). + + -- Matthias Klose <doko@ubuntu.com> Thu, 04 Dec 2008 11:40:56 +0100 + +openjdk-6 (6b13~pre2-0ubuntu2) jaunty; urgency=low + + * Update IcedTea build infrastructure (20081203). + - Fix build failures on zero based architectures. + * Add build dependency on libxrender-dev. + * Don't use fastjar on ia64, working around a build failure. + + -- Matthias Klose <doko@ubuntu.com> Wed, 03 Dec 2008 18:43:23 +0100 + +openjdk-6 (6b13~pre2-0ubuntu1) jaunty; urgency=low + + * Update IcedTea build infrastructure (20081202). + - Add Dec 3 OpenJDK security patches + * Build with --with-hotspot-build, update patches for this config. + + -- Matthias Klose <doko@ubuntu.com> Wed, 03 Dec 2008 01:05:54 +0100 + +openjdk-6 (6b13~pre1-0ubuntu4) jaunty; urgency=low + + * Update IcedTea build infrastructure (20081122). + - Fixes for the IcedTeaPlugin. LP: #300254. + + -- Matthias Klose <doko@ubuntu.com> Sat, 22 Nov 2008 10:42:10 +0100 + +openjdk-6 (6b13~pre1-0ubuntu3) jaunty; urgency=low + + * Fix versioned conflict on icedtea-gcjwebplugin. LP: #284299. + * Update IcedTea build infrastructure (20081121). + - Fixes for the IcedTeaPlugin. + * Configure with pulseaudio in jaunty. + + -- Matthias Klose <doko@ubuntu.com> Fri, 21 Nov 2008 07:46:10 +0100 + +openjdk-6 (6b13~pre1-0ubuntu2) jaunty; urgency=low + + * Update IcedTea build infrastructure (20081117). + * Use openjdk-6 as stage1 compiler on armel for a faster build. + + -- Matthias Klose <doko@ubuntu.com> Mon, 17 Nov 2008 18:43:17 +0100 + +openjdk-6 (6b13~pre1-0ubuntu1) jaunty; urgency=low + + * New code drop (b13). + - In the langtools area, besides a few miscellaneous bug fixes (6760834, + 6725036, 6657499), all the langtools regression tests now pass out of + the box (6728697, 6707027) and if using the most recent version of + jtreg, the langtools regression tests can be run in the much faster + "same vm" mode of jtreg, enabled with the -s option (6749967, 6748541, + 6748546, 6748601, 6759775, 6759795, 6759796, 6759996, 6760805, 6760930). + - Gervill update, including applying a patch from IcedTea (6758986, + 6748247, 6748251). + - Publishing a few dozen additional existing regression tests as open + source (6601457, 6759433, 6740185). + - JMX and monitoring fixes (6651382, 6616825, 6756202, 6754672). + - Man page updates (6757036, 6392810, 6504867, 6326773). + - Assorted other fixes (6746055, 6621697, 6756569, 6356642, 6761678). + * Update IcedTea build infrastructure (20081111). + - Fix freeze in midi app, LP: #275672. + - Fixes in the IcedTeaPlugin: LP: #282570, LP: #282570, LP: #285729, + LP: #291377, LP: #37330, LP: #239533. + - Fix vertical text metrics with freetype scaler. LP: #289784. + * Build-depend on ecj-gcj instead of ecj on architectures using + gij/gcj as the bootstrap system. + * Fixed in 6b12: Stack overflow running Kea. LP: #244731. + + -- Matthias Klose <doko@ubuntu.com> Tue, 11 Nov 2008 12:39:16 +0100 + +openjdk-6 (6b12-1~exp1) experimental; urgency=low + + * Update IcedTea build infrastructure (20081025). + + -- Matthias Klose <doko@ubuntu.com> Sat, 25 Oct 2008 23:35:14 +0200 + +openjdk-6 (6b12-0ubuntu6) intrepid; urgency=low + + * Make the dependency on ca-certificates-java unversioned. + * Merge from IcedTea: + - plugin/icedtea/netscape/javascript/JSObject.java: Make + long constructor public. + + -- Matthias Klose <doko@ubuntu.com> Fri, 24 Oct 2008 23:06:32 +0200 + +openjdk-6 (6b12-0ubuntu5) intrepid; urgency=low + + * Update IcedTea build infrastructure (20081024). + - Add --pkgversion=<package version> configure option. + - IcedTeaPlugin fixes. + - Fix xjc regressions. + * openjdk-jre-headless: Depend on ca-certificates-java. + * Configure with --pkgversion=<package version> to encode the package + version in the -version output and in vm dumps. + * cacao: Handle VM options Xverify:all and Xverify:none. + + -- Matthias Klose <doko@ubuntu.com> Fri, 24 Oct 2008 13:39:29 +0200 + +openjdk-6 (6b12-0) experimental; urgency=low + + * Upload to experimental. + * Pretend the availability of at least 384MB RAM; better swap on the + buildds than failing the build. + + -- Matthias Klose <doko@ubuntu.com> Sun, 19 Oct 2008 11:15:28 +0200 + +openjdk-6 (6b12-0ubuntu4) intrepid; urgency=low + + * Update IcedTea build infrastructure (20081019). + - plugin fix (Make applet size factors doubles instead of ints). + * Don't fail the build when the jtreg summary is missing. + * openjdk-6-source-files: Fix priority and section of the binary package. + * Fix section of the plugin package. + + -- Matthias Klose <doko@ubuntu.com> Sun, 19 Oct 2008 09:29:03 +0200 + +openjdk-6 (6b12-0ubuntu3) intrepid; urgency=low + + * Update IcedTea build infrastructure (20081018). + - Fix LiveConnect issues in the web plugin. LP: #282762. + - Fail the build, if patches don't apply. + * Show xvfb and xauth failures in the build log, when running the testsuites. + * Kill processes which still hang after running the testsuite. Closes: #493339. + * Run the testsuite in parallel, reducing build time. + * openjdk-headless: Depend instead of recommending tzdata-java. + + -- Matthias Klose <doko@ubuntu.com> Sat, 18 Oct 2008 17:15:14 +0200 + +openjdk-6 (6b12-0ubuntu2) intrepid; urgency=low + + * icedtea6-plugin: Versioned conflict with icedtea-gcjwebplugin. LP: #184299. + * Don't configure --with-alt-jar=/usr/bin/fastjar on hotspot archs + and cacao builds. Working around a problem generating rt.jar. Manually + add the netscape/javascript files in zero builds. + * Update IcedTea build infrastructure (20081017). + - configury updates. + - IcedTeaPlugin update. + * openjdk-6-jdk: Suggest visualvm. + * Remove cacao patches found in cacao 0.99.4~20081012. + + -- Matthias Klose <doko@ubuntu.com> Fri, 17 Oct 2008 13:25:45 +0200 + +openjdk-6 (6b12-0ubuntu1) intrepid; urgency=low + + * Update IcedTea to the 1.3.0 release. + * Apply upstream patch to fix upstream issue 6758986. + + -- Matthias Klose <doko@ubuntu.com> Wed, 15 Oct 2008 19:49:05 +0000 + +openjdk-6 (6b12~pre2-1) experimental; urgency=low + + * Upload to experimental. + + -- Matthias Klose <doko@ubuntu.com> Sun, 12 Oct 2008 11:16:03 +0000 + +openjdk-6 (6b12~pre2-0ubuntu3) intrepid; urgency=low + + * Update IcedTea build infrastructure (20081015). + * Add netscape/javascript class files to rt.jar. LP: #282762. + * Be more verbose in the icedtea6-plugin package description. + * Fix some lintian warnings. + + -- Matthias Klose <doko@ubuntu.com> Wed, 15 Oct 2008 12:45:59 +0200 + +openjdk-6 (6b12~pre2-0ubuntu2) intrepid; urgency=low + + * Update IcedTea build infrastructure (20081012). + * When building as cacao, build a cacao-oj6-plugin package. + * When building as cacao, run the testsuite on amd64, i386, sparc. + * Add finnish translations to the desktop files (Timo Jyrinki). + Closes: #494354. + * Fix font paths (Rob Gom). Closes: #495988. + * Reenable running the testsuite. + * Fix pulse-java build failure on amd64. + + -- Matthias Klose <doko@ubuntu.com> Sun, 12 Oct 2008 13:05:49 +0200 + +openjdk-6 (6b12~pre2-0ubuntu1) intrepid; urgency=low + + * Update IcedTea build infrastructure (20081011). + * debian/copyright: Add copyright notice for pulseaudio sound files. + * Add support to build with pulseaudio support. + + -- Matthias Klose <doko@ubuntu.com> Sat, 11 Oct 2008 15:44:50 +0200 + +openjdk-6 (6b12~pre1-0ubuntu5) intrepid; urgency=low + + * Move the plugin from the -jre package into the -plugin package. + + -- Matthias Klose <doko@ubuntu.com> Fri, 10 Oct 2008 06:55:34 +0000 + +openjdk-6 (6b12~pre1-0ubuntu4) intrepid; urgency=low + + * Update IcedTea build infrastructure (20081009). + * Configure with --enable-liveconnect, build an icedtea6-plugin package. + Thanks to Deepak Bhole. + LP: #207064, #195783, #199680, #202762, #220241, #242263, #242496, + #242496, #250292, #269885, #274356, #274360, #259313. + * Build an icedtea6-plugin package. + * Merge changes from 6b11-9 packaging. + * Build a openjdk-6-source-files packages (used as a build dependency + of cacao-oj6). + * Build depend on cacao-source for cacao-oj6 builds. + + -- Matthias Klose <doko@ubuntu.com> Thu, 09 Oct 2008 15:04:27 +0200 + +openjdk-6 (6b12~pre1-0ubuntu3) intrepid; urgency=low + + * Update IcedTea build infrastructure (20080915). + * Reapply: openjdk-6-jre-headless: Make libnss-mdns a suggestion + instead of a recommendation. LP: #261847. + * Build-depend against fixed fastjar. LP: #267177. + + -- Matthias Klose <doko@ubuntu.com> Mon, 15 Sep 2008 20:16:51 +0200 + +openjdk-6 (6b12~pre1-0ubuntu2) intrepid; urgency=low + + * Update the icedtea-hotspot patch to b12, fixing build failures + on zero archs (ia64, powerpc). + + -- Matthias Klose <doko@ubuntu.com> Sat, 13 Sep 2008 11:48:44 +0200 + +openjdk-6 (6b12~pre1-0ubuntu1) intrepid; urgency=low + + * New code drop (b12). + * Update IcedTea build infrastructure (20080912). + + -- Matthias Klose <doko@ubuntu.com> Sat, 13 Sep 2008 00:41:42 +0200 + +openjdk-6 (6b11-6) unstable; urgency=low + + * Set minimum heap size independent of available memory for cacao builds. + * Link the wrapper tools with -rdynamic for cacao builds. + * Update cacao based builds: + - Update cacao to 0.99.3, remove patches applied upstream. + - Fix build failures on mipsel-linux. + * Allow setting of the bootstrap compiler per architecture. + * Configure --with-alt-jar set to fastjar to speed up builds. + * Update IcedTea build infrastructure (20080815), remove local patches + integrated in IcedTea. + - Make use of unsigned/signed types explicit. + - Fix PR icedtea/184, adding support for returning floats and doubles + for zero builds. + - Fix Fix PR icedtea/181, class type checks. + + -- Matthias Klose <doko@ubuntu.com> Fri, 15 Aug 2008 16:59:48 +0000 + +openjdk-6 (6b11-5) unstable; urgency=low + + * debian/rules (stamps/mauve-build): Configure with --host and --build. + * openjdk-6-jdk: Recommend libxt-dev (jawt_md.h header includes). + * Fix build issues on s390 (size_t is unsigned long). + + -- Matthias Klose <doko@ubuntu.com> Sun, 03 Aug 2008 20:05:44 +0200 + +openjdk-6 (6b11-4) unstable; urgency=low + + * Update IcedTea build infrastructure (20080801). + - Fix typo, causing build failure on mipsel. + + -- Matthias Klose <doko@ubuntu.com> Fri, 01 Aug 2008 01:25:51 +0200 + +openjdk-6 (6b11-3) unstable; urgency=low + + * Include the name of the VM used in the package description. + * Update IcedTea build infrastructure (20080731). + * Build for alpha, arm, mips and mipsel. + * Switch from libcupsys2(-dev) to libcups2(-dev) for newer releases. + (Closes: #492384) + * Add symlinks for header files found in JAVA_HOME/include/linux in + JAVA_HOME/include. + * openjdk-6-jre: Don' recommend lesstif2 anymore. + + -- Matthias Klose <doko@ubuntu.com> Thu, 31 Jul 2008 17:16:59 +0200 + +openjdk-6 (6b11-2ubuntu1) intrepid; urgency=low + + * xvfb seems to be broken when running with intrepid and an intrepid kernel. + Nevertheless, run xvfb-run -s "-extension GLX" on the buildds (hardy kernels). + * Stop the buildwatch process after the testsuite finishes. + + -- Matthias Klose <doko@ubuntu.com> Fri, 25 Jul 2008 12:33:44 +0200 + +openjdk-6 (6b11-2) unstable; urgency=low + + * Update IcedTea build infrastructure (20080724). + * debian/buildwatch.sh: Track long building files with no visible output. + * Fix build failure when not running the mauve testsuite. + * Disable running the testsuite for cacao builds (leaving processes around). + * Don't set a soversion for the cacao libjvm. + * Configure with --host and --build. + * Call xvfb-run with -s "-extension GLX". + + -- Matthias Klose <doko@ubuntu.com> Thu, 24 Jul 2008 22:25:30 +0200 + +openjdk-6 (6b11-1ubuntu2) intrepid; urgency=low + + * Update IcedTea build infrastructure (20080724). + * debian/buildwatch.sh: Track long building files with no visible output. + * Fix build failure when not running the mauve testsuite. + * Disable running the testsuite for cacao builds (leaving processes around). + * Don't set a soversion for the cacao libjvm. + * Configure with --host and --build. + + -- Matthias Klose <doko@ubuntu.com> Thu, 24 Jul 2008 17:58:53 +0200 + +openjdk-6 (6b11-1ubuntu1) intrepid; urgency=low + + * Regenerate the control file. + + -- Matthias Klose <doko@ubuntu.com> Wed, 23 Jul 2008 00:42:16 +0200 + +openjdk-6 (6b11-1) unstable; urgency=low + + * New code drop (b11). + * Update IcedTea build infrastructure (20080721). + * debian/generate-dfsg.sh: Update for b11. + * debian/patches/const_strings.patch, debian/patches/issue-6659207.diff: + Remove, applied upstream. + * debian/generate-debian-orig.sh: Fix /proc check. + * debian/control.in: Loosen dependency of -jre-lib on -jre. + * Support `nodocs' in DEB_BUILD_OPTIONS. + * Remove build-dependency on lesstif2-dev. + * Bootstrap using gcj on all archs; the 6b10dfsg-2 packages are broken. + * Run the jtreg harness in a virtual X environment. + * Install javazic.jar in the jre-lib package. + * Don't run the testsuite on arm; the build already takes days; only + run the testsuite on hotspot archs and powerpc. + + -- Matthias Klose <doko@ubuntu.com> Wed, 23 Jul 2008 00:28:12 +0200 + +openjdk-6 (6b10dfsg-2) unstable; urgency=low + + * Update IcedTea build infrastructure (20080714). + * On arm configure cacao builds with --enable-softfloat. + * Don't run the mauve testsuite for cacao builds (hangs the test runner + process). + * Don't configure cacao builds with --enable/-disable-zero. + * Don't remove alternatives on upgrade. + * debian/copyright: Add license for NanoXML. + * Do recommends ttf-indic-fonts instead of ttf-indic-fonts-core for + lenny and sid. Closes: #490619. + * Ignore errors when registering the jar binfmt. The alternative may + already be registered by another JVM. Closes: #490594. + * openjdk-6-jre-headless: Depend on ttf-dejavu-core instead of ttf-dejavu. + * On amd64, i386 and sparc, bootstrap using openjdk. + + -- Matthias Klose <doko@ubuntu.com> Mon, 14 Jul 2008 19:41:19 +0200 + +openjdk-6 (6b10dfsg-1ubuntu2) intrepid; urgency=low + + * Update IcedTea build infrastructure (20080702). + - Do not configure --with-shark by default. + - Update license headers from jdk7. + * Start debian/buildwatch.sh for armel and sparc builds as well. + * Allow configuration with --with-cacao. + + -- Matthias Klose <doko@ubuntu.com> Mon, 30 Jun 2008 13:30:06 +0200 + +openjdk-6 (6b10dfsg-1ubuntu1) intrepid; urgency=low + + * The rebuilt upstream tarball now has GPL-compatible free software licenses + and documented copyrights and licenses. LP: #238569. + * Fixed name of the xulrunner-1.9-javaplugin.so in the .jinfo file. + LP: #226911. + * Ignore errors during activation of class data sharing. Closes: #490617, + #490672. + + -- Matthias Klose <doko@ubuntu.com> Mon, 30 Jun 2008 13:30:06 +0200 + +openjdk-6 (6b10dfsg-1) unstable; urgency=low + + * Rebuild the upstream tar ball: + - Remove the jscheme jar files. + - Apply the patch from Iris Clark (Sun) for the copyright headers + (http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=141#c4). + - Remove jdk/src/share/classes/java/lang/instrument/package.html. + - Upload to main. + * Update IcedTea build infrastructure (20080628). + * Build an openjdk-6-dbg package. + * patches/gcc-mtune-generic.diff: Fix typo. + * openjdk-6-jre: Depend on ttf-dejavu. + * debian/copyright: Add two more copyright holders, not directly + mentioned in the third party readme. + Replace Apache 2.0 license with pointer to common-licenses. + * Fix more lintian warnings. + * debian/sun_java_app.xpm: Downsize icon to 32x32 pixels. + * Build-depend/depend on rhino. + + -- Matthias Klose <doko@ubuntu.com> Sun, 29 Jun 2008 17:42:51 +0200 + +openjdk-6 (6b10-1) unstable; urgency=low + + * New code drop (b10). + - Still some non-compliant license headers found in + openjdk/corba/src/share/classes/com/sun/tools/corba/se/idl. + - Upload to non-free. + * Update IcedTea build infrastructure (20080603). + * In fontconfig.properties, fix Korean font names and add paths to the Luxi + fonts for Motif. Add fonts for Indic languages. + * Install compilefontconfig.jar in openjdk-6-jre-lib package. + * Run the testsuites of hotspot, langtools and jdk. + * Include the jscheme-5.0 sources in the tarball, mention the jscheme + licenses in debian/copyright. + * Use the certificates provided by the ca-certificates-java package. + * More fontconfig updates (Arne Goetje). + * Fix some lintian warnings. + * Correct build-dependency for openjdk based bootstraps. + + -- Matthias Klose <doko@ubuntu.com> Wed, 04 Jun 2008 01:46:52 +0200 + +openjdk-6 (6b09-1~pre1) unstable; urgency=low + + [ Matthias Klose ] + * New code drop (b09). + * Update IcedTea build infrastructure (20080528). + - Add missing color profiles. LP: #225174. + - Moved system properties defined in hotspot to TrustManagerFactoryImpl. + LP: #224455. + * 6636469_v4.diff: Remove, committed in IcedTea. + * debian/control: Update Vcs-* attributes. + * debian/JB-jre-headless.p*.in: Fix update-binfmts calls. + * Compress the man pages, fixing the slave symlinks of the alternatives. + * javaws.desktop: Add `%u' to the Exec key, remove -viewer option. + * openjdk-6-jre-headless: Recommends libnss-mdns. + * openjdk-6-jre-headless: Warn about unmounted /proc file system. + * debian/JB-jre.mime.in: Remove the -viewer option from command (Tan Rui + Boon). + * Add a `docs' symlink pointing to /usr/share/doc/openjdk-6. LP: #218405. + * Set maintainer to the team list. + * Add copyright notices for patches and generated files. + * Add helper scripts to modify upstream tarball and generate the debian + tarball. + * Fix names for browser alternatives in jinfo file, set browser_plugin_dirs + unconditionally. + * Recommend the ttf-wqy-zenhei font instead of ttf-arphic-uming, if the + latter is available in Truetype Collection (TTC) format only, add the + fontconfig changes as a patch. + * Make the cjk font packages configurable in the control file. + * Use GCC-4.3 on all platforms where available. + * Install a config file swing.properties, allowing a user to change + the default look and feel. LP: #229112. + * When trying to determine the executable name reading /proc/self/exe, + discard known prefixes used for unionfs mounts. LP: #224110. + * Explicitely configure with --disable-zero on hotspot architectures. + * Add fix for issue 6659207, access violation in CompilerThread0. + Addresses #478560. Needs checking: LP: #229207. + * Disable building the docs on ia64, powerpc and sparc, we don't build + architecture independent packages on these architectures. + * Explicitely configure --with-parallel-jobs, needed by the updated IcedTea. + * Backport the linux-sparc patches, enable building on sparc. LP: #154080. + * Don't use an absolute path calling the compiler. + * Replace the OpenJDK version in desktop and menu files. + * Install menu files. + * Install openjdk-6-java.desktop in -jre, instead of -jre-headless. + + -- Matthias Klose <doko@ubuntu.com> Wed, 14 May 2008 08:49:54 +0200 + +openjdk-6 (6b08-1) unstable; urgency=low + + [ Torsten Werner ] + * first upload to Debian (Closes: #452750) + * Regenerate debian/control. + * Switch to bzip2 package compression in Debian but leave lzma compression + in Ubuntu. + * Temporarily downgrade Depends: tzdata-java to Recommends until the package + becomes available in Debian. + * Add myself to Uploaders. + * Do not install extras license file in openjdk-6-jre-lib. + * Add patch shebang.diff to fix a lintian warning. + * Install openjdk-6-java.desktop into the correct binary package. + * Improve some package descriptions. + * Remove some empty directories from binary packages. + * Install README.Debian in every binary package and give it some useful + content. + * Install java-rmi.cgi in package openjdk-6-jre-headless and mention it in + README.Debian. + * Install /usr/bin/jexec via update-alternatives. + * Downgrade Depends: java-common (>= 0.28). + * Add patch jexec.diff to make the jexec binary executable without + specifying an absolute path. + * Add Build-Depends: xauth and xfonts-base for mauve. + * Update and install the lintian override files. + * Replace all occurences of binary:Version and source:Version by + Source-Version to be compatible with Ubuntu release 6.06. + * Remove Conflicts: gcjwebplugin. + + [ Michael Koch ] + * Fixed Vcs-Bzr and Vcs-Browser fields. + * Removed Encoding entry from all debian/*.desktop.in files. + + [ Matthias Klose ] + * Make Java Full Screen Exclusive Mode work again with Xorg Server 1.3 + and above (Dan Munckton). LP: #154613 (Java bug 6636469). + * Configure with --enable-zero on all archs except amd64, i386, lpia. + * Update IcedTea build infrastructure. + * Handle binary files in updates of the build infrastructure. + * Enable bootstrap/normal builds per architecture. + * javaws-wrapper.sh: Use readlink --canonicalize. LP: #211515. + * binfmt-support: Handle /usr/share/binfmts/jar as a slave symlink of + the jexec alternative, install the binfmt file in the jre libdir. + Use the jexec alternative in the binfmt file. + * JB-jre-headless.postinst.in: Remove sun-java6 specific chunks. + * Differentiate between the openjdk version required as dependency and + as build dependency. + + -- Torsten Werner <twerner@debian.org> Wed, 09 Apr 2008 10:12:55 +0200 + +openjdk-6 (6b08-0ubuntu1) hardy; urgency=low + + * New code drop (b08). + * Update IcedTea build infrastructure. + * Move binfmt-support references from -jre to -jre-headless package. + * Don't fail on purge, if /var/lib/binfmts/openjdk-6 is missing. LP: #206721. + * Only use the basename for icons in desktop files. LP: #207413. + * Install javaws(1). LP: #191297. + * Install a wrapper script for javaws, which calls `javaws -viewer' if no + arguments are given (or else starting javaws from the desktop menu + would not do anything). + * debian/JB-web-start.applications.in: Remove the -viewer option from command. + + -- Matthias Klose <doko@ubuntu.com> Fri, 28 Mar 2008 16:10:32 +0000 + +openjdk-6 (6b07-0ubuntu1) hardy; urgency=low + + * New code drop (b07). + * Update IcedTea build infrastructure. + * debian/copyright: Update to OpenJDK Trademark Notice v1.1. + + -- Matthias Klose <doko@ubuntu.com> Sat, 22 Mar 2008 22:41:42 +0100 + +openjdk-6 (6b06-0ubuntu12) hardy; urgency=low + + * Update icon locations in menu files. + * openjdk-6-jre-headless: Provide java-virtual-machine. LP: #189953. + * openjdk-6-jre-headless: Add a conflict to gcjwebplugin; for openjdk + use the icetea-gcjwebplugin, for gij the java-gcj-compat-plugin. + + -- Matthias Klose <doko@ubuntu.com> Sat, 22 Mar 2008 20:12:41 +0100 + +openjdk-6 (6b06-0ubuntu11) hardy; urgency=low + + * Update IcedTea to 20080319. + * Move rt.jar into the openjdk-6-jre-headless package; sun/awt/X11 + class files differ between amd64 and i386. + * Install all desktop files in /usr/share/applications. + + -- Matthias Klose <doko@ubuntu.com> Wed, 19 Mar 2008 23:53:36 +0100 + +openjdk-6 (6b06-0ubuntu10) hardy; urgency=low + + * Remove print-lsb-release.patch, forwarded to IcedTea. + * Fix IcedTea configure to detect libffi without pkg-config. + + -- Matthias Klose <doko@ubuntu.com> Wed, 12 Mar 2008 20:28:55 +0100 + +openjdk-6 (6b06-0ubuntu9) hardy; urgency=low + + * Build-depend on libffi4-dev on architectures other than amd64, i386, lpia. + * Install icons in /usr/share/pixmaps, not /usr/share/icons. + * debian/rules: Call dh_icons. + + -- Matthias Klose <doko@ubuntu.com> Wed, 12 Mar 2008 11:34:44 +0100 + +openjdk-6 (6b06-0ubuntu8) hardy; urgency=low + + * Tighten dependency on java-common. + * debian/copyright: Include trademark notice. + * debian/control: Mention IcedTea in the package descriptions. + * Update IcedTea to 20080311. + + -- Matthias Klose <doko@ubuntu.com> Tue, 11 Mar 2008 21:39:27 +0100 + +openjdk-6 (6b06-0ubuntu7) hardy; urgency=low + + * Build-depend on unzip. + + -- Matthias Klose <doko@ubuntu.com> Fri, 07 Mar 2008 16:47:43 +0100 + +openjdk-6 (6b06-0ubuntu6) hardy; urgency=low + + * Build-depend on zip. + + -- Matthias Klose <doko@ubuntu.com> Fri, 07 Mar 2008 16:16:52 +0100 + +openjdk-6 (6b06-0ubuntu5) hardy; urgency=low + + * debian/mauve_tests: javax.swing.text.html.HTML.ElementTagAttributeTest, + removed, tries to access the network. + * debian/README.alternatives.in: Update for --jre-headless. + * debian/rules: Fix paths for OpenJDK based bootstrap. + * Compress packages using lzma. + * Drop build dependency on zip, unzip. + * Fix build infrastructure to bootstrap with OpenJDK instead of ecj. + * Do not build the gcjwebplugin from the OpenJDK source. + + -- Matthias Klose <doko@ubuntu.com> Fri, 07 Mar 2008 13:53:15 +0100 + +openjdk-6 (6b06-0ubuntu4) hardy; urgency=low + + * Don't register a java-rmi.cgi alternative in /usr/bin. + + -- Matthias Klose <doko@ubuntu.com> Thu, 06 Mar 2008 17:59:35 +0100 + +openjdk-6 (6b06-0ubuntu3) hardy; urgency=low + + * Split out a openjdk-6-jre-headless package, depend on java-common, + supporting update-java-alternatives --jre-headless. + * Make openjdk-6-jre-headless and openjdk-6-jre architecture any. + * New package openjdk-6-jre-lib (arch all). + * Remove openjdk-6-bin package. + * debian/patches/openjdk-ubuntu-branding.patch: New patch. + * Install images/cursors/cursors.properties as a config file. + * Do not compress demos and examples in the -demo package. + * openjdk-6-jre: Add dependency on libxinerama1. + * Update IcedTea to 20080305. + * Don't generate cacerts ourself, but depend on ca-certificates, + fix location of javax.net.ssl.trustStore property. + * Build-depend on mauve and xvfb; run some mauve tests (the list of + tests taken from the Fedora package). + * Keep a backup of the `generated' directory; some files are regenerated + differently, increasing the size of the diff. + + -- Matthias Klose <doko@ubuntu.com> Thu, 06 Mar 2008 10:05:39 +0100 + +openjdk-6 (6b06-0ubuntu2) hardy; urgency=low + + * Re-add gawk and pkg-config as build dependencies. + + -- Matthias Klose <doko@ubuntu.com> Tue, 04 Mar 2008 12:20:21 +0100 + +openjdk-6 (6b06-0ubuntu1) hardy; urgency=low + + * New code drop (b06). + * Remove java-access-bridge tarball, use an externally built package. + * Update IcedTea to 20080304. + * Don't use any compiler flags from the environment. + + -- Matthias Klose <doko@ubuntu.com> Tue, 04 Mar 2008 09:16:59 +0100 + +openjdk-6 (6b05-0ubuntu1) hardy; urgency=low + + * First public OpenJDK upstream code drop (b05). + * Depend on tzdata-java. + + -- Matthias Klose <doko@ubuntu.com> Fri, 29 Feb 2008 19:05:42 +0100 + +icedtea-java7 (7~b24-1.5+20080118-2) UNRELEASED; urgency=low + + * Fix removal of alternatives. + + -- Matthias Klose <doko@ubuntu.com> Sat, 26 Jan 2008 18:41:40 +0100 + +icedtea-java7 (7~b24-1.5+20080118-1) hardy; urgency=low + + * Fix installation of the plugin for firefox-3.0. + + -- Matthias Klose <doko@ubuntu.com> Sat, 19 Jan 2008 15:10:18 +0100 + +icedtea-java7 (7~b24-1.5+20080118-1~ppa1) hardy; urgency=low + + * Update IcedTea to 20080118. + * Fix another build failure when gcc version != gcj version. + * Use the versioned compiler to build the corba parts. + * Register plugin for firefox-3.0. + * Build using GCC-4.3. + + -- Matthias Klose <doko@ubuntu.com> Fri, 18 Jan 2008 21:15:08 +0100 + +icedtea-java7 (7~b24-1.5-2) UNRELEASED; urgency=low + + * First upload to Debian. Closes: #452750. + * debian/control.in: + - Moved package from universe/devel section to devel. + - Put icedtea-java7-doc into doc section. + - Added Homepage field and removed Homepage pseudo field from + descriptions. + - Updated Standards-Version to 3.7.3. + * debian/rules: + - Check if Makefile exists before called clean in clean target. + * debian/copyright: Converted to UTF-8. + + -- Michael Koch <konqueror@gmx.de> Sat, 05 Jan 2008 13:34:46 -0100 + +icedtea-java7 (7~b24-1.5-1) hardy; urgency=low + + * Update to IcedTea-1.5. + * debian/patches/ssp-interpreter.diff: Use bash to call the ssp script, + backslash handling differs betweend dash and bash. + + -- Matthias Klose <doko@ubuntu.com> Fri, 04 Jan 2008 09:58:27 +0100 + +icedtea-java7 (7~b24-1.5~20071214-1) hardy; urgency=low + + * New upstream snapshot (b24). + * Update java-access-bridge to 1.21.1. + * On powerpc keep the build alive using buildwatch script. + * Do not install menu entries for javaws, ControlPanel. LP: #155553, #156673. + * README.alternatives: Fix example. LP: #157063. + + -- Matthias Klose <doko@ubuntu.com> Fri, 14 Dec 2007 11:09:22 +0100 + +icedtea-java7 (7~b23-1.5~20071124-4) hardy; urgency=low + + * Allow libungif4-dev as alternative build dependency. + * On powerpc keep the build alive using buildwatch script. + * Always build the plugin using libxul-dev. + + -- Matthias Klose <doko@ubuntu.com> Mon, 10 Dec 2007 15:20:16 +0100 + +icedtea-java7 (7~b23-1.5~20071124-3) hardy; urgency=low + + * Lower optimization to -O2 for building the jdk on amd64. + * Reenable parallel build. + * Link using -Bsymbolic-functions. + * debian/patches/arguments.patch, debian/patches/const_strings.patch: + New patches (Arnaud Vandyck). + + -- Matthias Klose <doko@ubuntu.com> Thu, 29 Nov 2007 18:50:41 +0100 + +icedtea-java7 (7~b23-1.5~20071124-2) hardy; urgency=low + + * Bootstrap using ecj/gcj. + * Build using g++-4.1 on i386, lpia, powerpc. + + -- Matthias Klose <doko@ubuntu.com> Wed, 28 Nov 2007 14:46:48 +0000 + +icedtea-java7 (7~b23-1.5~20071124-1) hardy; urgency=low + + * New upstream snapshot (b23). + + -- Matthias Klose <doko@ubuntu.com> Tue, 27 Nov 2007 15:48:08 +0100 + +icedtea-java7 (7~b22-1.5~20071018-0ubuntu3) hardy; urgency=low + + * Revert the previous change, require 7~b22 versions again. + + -- Matthias Klose <doko@ubuntu.com> Sat, 20 Oct 2007 14:33:26 +0000 + +icedtea-java7 (7~b22-1.5~20071018-0ubuntu2) hardy; urgency=low + + * Loosen dependencies to 7~b21, until package is built on all archs. + + -- Matthias Klose <doko@ubuntu.com> Sat, 20 Oct 2007 07:48:36 +0000 + +icedtea-java7 (7~b22-1.5~20071018-0ubuntu1) hardy; urgency=low + + * New upstream snapshot (b22). + * Don't use parallel builds to make the build log better comparable. + + -- Matthias Klose <doko@ubuntu.com> Fri, 19 Oct 2007 19:49:51 +0200 + +icedtea-java7 (7~b21-1.4+20071007-0ubuntu5) gutsy; urgency=low + + * Update icedtea to vcs 20071012 (1.4 release), checked that the plugin + works on amd64. + * debian/copyright: Update "License Headers" section. + + -- Matthias Klose <doko@ubuntu.com> Sun, 14 Oct 2007 19:55:12 +0200 + +icedtea-java7 (7~b21-1.4+20071007-0ubuntu4) gutsy; urgency=low + + * Bootstrapping trigger upload for final step of bootstrapping i386, amd64, + lpia. + + -- LaMont Jones <lamont@ubuntu.com> Wed, 10 Oct 2007 22:04:25 -0600 + +icedtea-java7 (7~b21-1.4+20071007-0ubuntu3) gutsy; urgency=low + + * Add build dependency on bzip2. + + -- Matthias Klose <doko@ubuntu.com> Wed, 10 Oct 2007 09:00:40 +0000 + +icedtea-java7 (7~b21-1.4+20071007-0ubuntu2) gutsy; urgency=low + + * Add build dependency on ant. + + -- Matthias Klose <doko@ubuntu.com> Wed, 10 Oct 2007 06:33:14 +0000 + +icedtea-java7 (7~b21-1.4+20071007-0ubuntu1) gutsy; urgency=low + + * Update icedtea to vcs 20071007. + * Update java-access-bridge to 1.20.0. + * Add build-dependency on libxinerama-dev. + * Add Xb-Npp-xxx tags for the -plugin package. + * Name the plugin "GCJ Web Browser Plugin (using IcedTea)", GCJ now + "Great Cool Java" (according to Michael Koch). + * Compress binary-indep packages using bzip2. + + -- Matthias Klose <doko@ubuntu.com> Sun, 7 Oct 2007 23:43:28 +0200 + +icedtea-java7 (7~b21-1.4+20071002-0ubuntu2) gutsy; urgency=low + + * Rebuild using icedtea 7~b21. + + -- Matthias Klose <doko@ubuntu.com> Tue, 02 Oct 2007 19:45:21 +0200 + +icedtea-java7 (7~b21-1.4+20071002-0ubuntu1) gutsy; urgency=low + + * New upstream snapshot (b21). + * Correctly unregister the executable binary format in the -bin package. + * Assemble the debian/copyright file. + + -- Matthias Klose <doko@ubuntu.com> Tue, 2 Oct 2007 09:59:37 +0200 + +icedtea-java7 (7~b19-1.3+20070905-0ubuntu1) gutsy; urgency=low + + * New upstream snapshot (b19). + * Build using g++-4.2 on amd64, using g++-4.1 on i386 and lpia. + * Build without -Werror, upstream source is not yet warning clean. + * Support DEB_BUILD_OPTIONS=parallel=<n>. + * Add build dependency on wget. + * Add font suggestions. + * Changed font configuration to fix CJK font support (Arne Goetje). + * Fix location of the plugin, when registering the plugin alternatives. + + -- Matthias Klose <doko@ubuntu.com> Thu, 6 Sep 2007 00:46:40 +0200 + +icedtea-java7 (7~b18-1.2+20070822-0ubuntu2) gutsy; urgency=low + + * Create browser plugin directories. + * Build-depend on liblcms1-dev. + * Recommend packages with dlopened libraries: liblcms1, lesstif2, libcupsys2, + libgtk2.0-0, libgnome2-0, libgnomevfs2-0, libgconf2-4, libxrandr2, + libgl1-mesa-glx. + + -- Matthias Klose <doko@ubuntu.com> Tue, 21 Aug 2007 17:21:00 +0200 + +icedtea-java7 (7~b18-1.2+20070822-0ubuntu1) gutsy; urgency=low + + * New upstream version. + * Include java-access-bridge. + * Build -doc, -plugin packages. + * Register alternatives, priority 1060. + + -- Matthias Klose <doko@ubuntu.com> Tue, 21 Aug 2007 17:21:00 +0200 + +icedtea-java7 (7~b17-1.2+20070808-1) gutsy; urgency=low + + * Initial release, discard the initial packaging based on cdbs. + * Base the packaging on the sun-javaX packages. + + -- Matthias Klose <doko@ubuntu.com> Wed, 08 Aug 2007 15:55:39 +0200 + +icedtea (7~b16-20070724-1) UNRELEASED; urgency=low + + * Update upstream tarball to 7~b16, update icedtea to 20070724. + * debian/control: Build-depend on libfreetype6-dev. + * debian/rules: Configure --with-jar=/usr/bin/fastjar. + * Build using gcj-4.2. + + -- Matthias Klose <doko@ubuntu.com> Tue, 24 Jul 2007 11:24:55 +0200 + +icedtea (7~b14-20070704-1) unstable; urgency=low + + * Initial version. + + -- Michael Koch <konqueror@gmx.de> Wed, 04 Jul 2007 08:25:31 -0100 + diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..a036e7d --- /dev/null +++ b/debian/control @@ -0,0 +1,183 @@ +Source: openjdk-8 +Section: java +Priority: optional +Maintainer: OpenJDK Team <openjdk@lists.launchpad.net> +Uploaders: Matthias Klose <doko@ubuntu.com> +Build-Depends: debhelper (>= 9), quilt, m4, lsb-release, zip, unzip, + sharutils, gawk, cpio, pkg-config, procps, wdiff, 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), libgtk2.0-dev, libxinerama-dev, libkrb5-dev, xsltproc, libpcsclite-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), tzdata, + mauve, jtreg, xvfb, xauth, xfonts-base, libgl1-mesa-dri [!x32], twm | metacity, twm | dbus-x11, x11-xkb-utils, + time, openjdk-8-jdk-headless <cross>, dpkg-dev (>= 1.17.14), +Standards-Version: 3.9.8 +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}, ${multiarch:Depends} +Depends: ${jredefault:Depends}, ${cacert:Depends}, + ${tzdata:Depends}, ${jcommon:Depends}, ${dlopenhl:Depends}, + ${mountpoint:Depends}, + ${shlibs:Depends}, ${misc:Depends} +Recommends: ${dlopenhl:Recommends}, ${jamvm:Recommends} +Suggests: ${jamvm:Suggests}, + libnss-mdns, + fonts-dejavu-extra, + fonts-ipafont-gothic, fonts-ipafont-mincho, ttf-wqy-microhei | ttf-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), + ca-certificates-java (<< 20160321~) +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: extra +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: extra +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: extra +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: extra +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 kfreebsd-amd64 kfreebsd-i386 +Multi-Arch: same +Priority: extra +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 --git a/debian/control.cacao-jre b/debian/control.cacao-jre new file mode 100644 index 0000000..09fc2a0 --- /dev/null +++ b/debian/control.cacao-jre @@ -0,0 +1,15 @@ + +Package: openjdk-8-jre-cacao +Architecture: @cacao_archs@ +Multi-Arch: same +Priority: extra +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 --git a/debian/control.in b/debian/control.in new file mode 100644 index 0000000..ebf8544 --- /dev/null +++ b/debian/control.in @@ -0,0 +1,169 @@ +Source: @basename@ +Section: java +Priority: optional +Maintainer: OpenJDK Team <openjdk@lists.launchpad.net> +Uploaders: Matthias Klose <doko@ubuntu.com> +Build-Depends: debhelper (>= 9), quilt, m4, lsb-release, zip, unzip, + sharutils, gawk, cpio, pkg-config, procps, wdiff, @bd_fastjar@ + @bd_autotools@ @bd_ant@ @bd_jamvm@ + @bd_gcc@ + @bd_bootstrap@ + @bd_openjdk@ + @bd_zero@ @bd_shark@ + @bd_syslibs@ @bd_pulsejava@ @bd_systemtap@ + @bd_nss@ @bd_tzdata@ + @bd_mauve@ @bd_jtreg@ @bd_xvfb@ + time, @bd_cross@ +Standards-Version: 3.9.8 +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), +Breaks: ${jrehl:Breaks} +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}, ${multiarch:Depends} +Depends: ${jredefault:Depends}, ${cacert:Depends}, + ${tzdata:Depends}, ${jcommon:Depends}, ${dlopenhl:Depends}, + ${mountpoint:Depends}, + ${shlibs:Depends}, ${misc:Depends} +Recommends: ${dlopenhl:Recommends}, ${jamvm:Recommends} +Suggests: ${jamvm: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), + ca-certificates-java (<< 20160321~) +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: extra +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: extra +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: extra +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: extra +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 --git a/debian/control.jamvm-jre b/debian/control.jamvm-jre new file mode 100644 index 0000000..9a52815 --- /dev/null +++ b/debian/control.jamvm-jre @@ -0,0 +1,13 @@ + +Package: openjdk-8-jre-jamvm +Architecture: @jamvm_archs@ +Multi-Arch: same +Priority: extra +Pre-Depends: ${dpkg:Depends} +Depends: @basename@-jre-headless (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Alternative JVM for OpenJDK, using JamVM + The package provides an alternative runtime using the JamVM. This is a + somewhat faster alternative than the Zero port on architectures like armel, + mips, mipsel, powerpc. + . + The VM is started with the option `-jamvm'. See the README.Debian for details. diff --git a/debian/control.zero-jre b/debian/control.zero-jre new file mode 100644 index 0000000..f53e372 --- /dev/null +++ b/debian/control.zero-jre @@ -0,0 +1,15 @@ + +Package: @basename@-jre-zero +Architecture: @altzero_archs@ +Multi-Arch: same +Priority: extra +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 --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..0ccac8d --- /dev/null +++ b/debian/copyright @@ -0,0 +1,3650 @@ +This package was debianized by Matthias Klose <doko@ubuntu.com> on +Wed, 08 Aug 2007 15:55:39 +0200. + +It was downloaded from + http://download.java.net/openjdk/jdk7/ + http://ftp.gnome.org/pub/GNOME/sources/java-access-bridge/ + +------------------------------------------------------------------------------ +Upstream Authors: + +OpenJDK: + Sun Microsystems, Inc. + Oracle and/or its affiliates. + +IcedTea Sound (see AUTHORS for a current list): + Andrew John Hughes <gnu_andrew@member.fsf.org, gnu.andrew@redhat.com> + Ioana Ivan <iivan@redhat.com> + Matthias Klose <doko@ubuntu.com> + Denis Lila <dlila@redhat.com> + Omair Majid <omajid@redhat.com> + Xerxes RÃ¥nby <xerxes@zafena.se> + Marc Schoenefeld <mschoene@redhat.com> + Joshua Sumali <jsumali@redhat.com> + Jon VanAlten <jon.vanalten@redhat.com> + +Java Access Bridge: + Bill Haneman <bill.haneman@sun.com> + Louise Miller + Gergõ Érdi <cactus@cactus.rulez.org> + Laszlo (Laca) Peter <laszlo.peter@sun.com> + Jeff Cai<jeff.cai@sun.com> + George Kraft IV <gk4@us.ibm.com> + Padraig O'Briain <padraig.obriain@sun.com> + Darren Kenny <darren.kenny@sun.com> + +Packaging: + Matthias Klose + +------------------------------------------------------------------------------ +Copyright: + +OpenJDK: + Copyright © 1996-2007 Sun Microsystems, Inc. + Copyright © 1996-2014 Oracle and/or its affiliates. + For third party copyrights see below (copies from the third party readme). + Portions Copyright © 1993-2014 IBM Corp. + Portions Copyright © 1997 Eastman Kodak Company. + Portions Copyright © 1999-2005 The Apache Software Foundation. + +IcedTea Sound: + Portions Copyright © 2008-2014 Red Hat, Inc. + +Java Access Bridge: + Portions Copyright © 2002-2007 Bill Haneman <bill.haneman@sun.com> + Portions Copyright © 2002-2007 Louise Miller + Portions Copyright © 2002-2007 Gergõ Érdi <cactus@cactus.rulez.org> + Portions Copyright © 2002-2007 Laszlo (Laca) Peter <laszlo.peter@sun.com> + Portions Copyright © 2002-2007 Jeff Cai<jeff.cai@sun.com> + Portions Copyright © 2002-2007 George Kraft IV <gk4@us.ibm.com> + Portions Copyright © 2002-2007 Padraig O'Briain <padraig.obriain@sun.com> + Portions Copyright © 2002-2007 Darren Kenny <darren.kenny@sun.com> + +Packaging: + Copyright © 2007-2014 Canonical Ltd. + +------------------------------------------------------------------------------ +License: + +NOTE: the combined work which includes the upstream components below +carries forward the OpenJDK Assembly Exception (text included below). + +Packaging: + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +IcedTea Sound: + IcedTea is licensed under the GPL v2. See `/usr/share/common-licenses/GPL-2'. + The exception is: "CLASSPATH" EXCEPTION TO THE GPL. + + The sound files (pulseaudio/testsounds/*.wav) were taken from the KDE Project + (www.kde.org). A copy of them can be obtained from + http://websvn.kde.org/branches/KDE/4.0/kdeartwork/sounds/ . They are licensed + by the copyright holders as GPLv2. + +OpenJDK: + OpenJDK is licensed under the GPL v2 with exceptions, + see `/usr/share/common-licenses/GPL-2'. + The exceptions are: + - "CLASSPATH" EXCEPTION TO THE GPL + - OPENJDK ASSEMBLY EXCEPTION + Various third party code in OpenJDK is licensed under different licenses. + See below (THIRD_PARTY_README). + +Java Access Bridge: + Java Access Bridge is licensed under the LGPL v2. + See `/usr/share/common-licenses/LGPL-2'. + +A Note About License Headers +---------------------------- + +Some sources downloaded from openjdk.java.net do not display the GPL +license header. Instances are: + + - The files in openjdk/j2se/src/share/classes/javax/xml/stream/ seem to + comprise the BEA-StAX source code + + http://ftpna2.bea.com/pub/downloads/jsr173.jar + + with some Sun-specific modifications. We're assuming that Sun is + bundling BEA-StAX under the terms of the Apache License 2.0 and + that the modifications are owned by Sun. + + - We are assuming that these files are owned by Sun: + openjdk/j2se/src/share/classes/**/resources/*.properties + +The downloaded sources include a script that inserts proprietary +license headers into the source files it generates. The script +itself is GPL'd so we patched them to emit the GPL header. The +file is: + openjdk/j2se/make/java/nio/genExceptions.sh + +------------------------------------------------------------------------------ +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Sun Microsystems, Inc. are subject to +the following clarification and special exception to the GPL, but only where +Sun has expressly included in the particular source file's header the words +"Sun designates this particular file as subject to the "Classpath" exception +as provided by Sun in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. + +------------------------------------------------------------------------------ +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Sun at openjdk.java.net and +openjdk.dev.java.net ("OpenJDK Code") is distributed under the terms of the +GNU General Public License <http://www.gnu.org/copyleft/gpl.html> version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Sun gives you permission to link this + OpenJDK Code with certain code licensed by Sun as indicated at + http://openjdk.java.net/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Sun. + +As such, it allows licensees and sublicensees of Sun's GPL2 OpenJDK Code to +build an executable that includes those portions of necessary code that Sun +could not provide under GPL2 (or that Sun has provided under GPL2 with the +Classpath exception). If you modify or add to the OpenJDK code, that new +GPL2 code may still be combined with Designated Exception Modules if the +new code is made subject to this exception by its copyright holder. + +------------------------------------------------------------------------------ +OpenJDK Trademark Notice +Version 1.1, 2008/3/10 + +OpenJDK (the "Name") is a trademark of Sun Microsystems, Inc. (the "Owner"). +Owner permits any person obtaining a copy of this software (the "Software") +which is based on original software retrieved from one of the following +websites: http://download.java.net/openjdk, http://hg.openjdk.java.net/jdk6, +or http://openjdk.java.net (each a "Website", with the original software made +available by the Owner on a Website being known as the "Website Software") to +use the Name in package names and version strings of the Software subject to +the following conditions: + + - The Software is a substantially complete implementation of the OpenJDK + development kit or runtime environment code made available by Owner on a + Website, and the vast majority of the Software code is identical to the + upstream Website Software; + + - No permission is hereby granted to use the Name in any other manner, + unless such use constitutes "fair use." + + - The Owner makes no warranties of any kind respecting the Name and all + representations and warranties, including any implied warranty of + merchantability, fitness for a particular purpose or non-infringement + are hereby disclaimed; and + + - This notice and the following legend are included in all copies of the + Software or portions of it: + + OpenJDK is a trademark or registered trademark of Sun Microsystems, + Inc. in the United States and other countries. + +The Name may also be used in connection with descriptions of the Software that +constitute "fair use," such as "derived from the OpenJDK code base" or "based +on the OpenJDK source code." + +Owner intends to revise this Notice as necessary in order to meet the needs of +the OpenJDK Community. Please send questions or comments about this Notice to +Sun Microsystems at openjdk-tm@sun.com. Revisions to this Notice will be +announced on the public mailing list announce@openjdk.java.net, to which you +may subscribe by visiting http://mail.openjdk.java.net. The latest version of +this Notice may be found at http://openjdk.java.net/legal. + +------------------------------------------------------------------------------ + +The contents of the jdk/src/share/native/sun/security/ec/impl/ directory are +licensed under the LGPL-2.1. See `/usr/share/common-licenses/LGPL-2-1'. + +------------------------------------------------------------------------------ +The following licenses for third party code are taken from +openjdk/THIRD_PARTY_README +------------------------------------------------------------------------------ + +DO NOT TRANSLATE OR LOCALIZE. +----------------------------- + +%% This notice is provided with respect to ASM Bytecode Manipulation +Framework v5.0, which may be included with JRE 8, and JDK 8, and +OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (c) 2000-2011 France Télécom +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +-------------------------------------------------------------------------------- + +%% This notice is provided with respect to BSDiff v4.3, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright 2003-2005 Colin Percival +All rights reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted providing that the following conditions +are met: +1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to CodeViewer 1.0, which may be +included with JDK 8. + +--- begin of LICENSE --- + +Copyright 1999 by CoolServlets.com. + +Any errors or suggested improvements to this class can be reported as +instructed on CoolServlets.com. We hope you enjoy this program... your +comments will encourage further development! This software is distributed +under the terms of the BSD License. Redistribution and use in source and +binary forms, with or without modification, are permitted provided that the +following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +Neither name of CoolServlets.com nor the names of its contributors may be +used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY COOLSERVLETS.COM AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Cryptix AES 3.2.0, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Cryptix General License + +Copyright (c) 1995-2005 The Cryptix Foundation Limited. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + 1. Redistributions of source code must retain the copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE CRYPTIX FOUNDATION LIMITED AND +CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE CRYPTIX FOUNDATION LIMITED OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to CUP Parser Generator for +Java 0.10k, which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, provided +that the above copyright notice appear in all copies and that both the +copyright notice and this permission notice and warranty disclaimer appear in +supporting documentation, and that the names of the authors or their +employers not be used in advertising or publicity pertaining to distribution of +the software without specific, written prior permission. + +The authors and their employers disclaim all warranties with regard to +this software, including all implied warranties of merchantability and fitness. +In no event shall the authors or their employers be liable for any special, +indirect or consequential damages or any damages whatsoever resulting from +loss of use, data or profits, whether in an action of contract, negligence or +other tortious action, arising out of or in connection with the use or +performance of this software. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Document Object Model (DOM) Level 2 +& 3, which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +W3C SOFTWARE NOTICE AND LICENSE + +http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + +This work (and included software, documentation such as READMEs, or other +related items) is being provided by the copyright holders under the following +license. By obtaining, using and/or copying this work, you (the licensee) +agree that you have read, understood, and will comply with the following terms +and conditions. + +Permission to copy, modify, and distribute this software and its +documentation, with or without modification, for any purpose and without fee +or royalty is hereby granted, provided that you include the following on ALL +copies of the software and documentation or portions thereof, including +modifications: + + 1.The full text of this NOTICE in a location viewable to users of the + redistributed or derivative work. + + 2.Any pre-existing intellectual property disclaimers, notices, or terms and + conditions. If none exist, the W3C Software Short Notice should be included + (hypertext is preferred, text is permitted) within the body of any + redistributed or derivative code. + + 3.Notice of any changes or modifications to the files, including the date + changes were made. (We recommend you provide URIs to the location from + which the code is derived.) + +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS +MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR +PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY +THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL +OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR +DOCUMENTATION. The name and trademarks of copyright holders may NOT be used +in advertising or publicity pertaining to the software without specific, +written prior permission. Title to copyright in this software and any +associated documentation will at all times remain with copyright holders. + +____________________________________ + +This formulation of W3C's notice and license became active on December 31 +2002. This version removes the copyright ownership notice such that this +license can be used with materials other than those owned by the W3C, reflects +that ERCIM is now a host of the W3C, includes references to this specific +dated version of the license, and removes the ambiguous grant of "use". +Otherwise, this version is the same as the previous version and is written so +as to preserve the Free Software Foundation's assessment of GPL compatibility +and OSI's certification under the Open Source Definition. Please see our +Copyright FAQ for common questions about using materials from our site, +including specific terms and conditions for packages like libwww, Amaya, and +Jigsaw. Other questions about this notice can be directed to +site-policy@w3.org. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Dynalink v0.5, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (c) 2009-2013, Attila Szegedi + +All rights reserved.Redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following conditions are +met:* Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. * Redistributions in +binary form must reproduce the above copyright notice, this list of +conditions and the following disclaimer in the documentation and/or other +materials provided with the distribution. * Neither the name of Attila +Szegedi nor the names of its contributors may be used to endorse or promote +products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Elliptic Curve Cryptography, which +may be included with JRE 8, JDK 8, and OpenJDK 8. + +You are receiving a copy of the Elliptic Curve Cryptography library in source +form with the JDK 8 and OpenJDK 8 source distributions, and as object code in +the JRE 8 & JDK 8 runtimes. + +In the case of the JRE 8 & JDK 8 runtimes, the terms of the Oracle license do +NOT apply to the Elliptic Curve Cryptography library; it is licensed under the +following license, separately from Oracle's JDK & JRE. If you do not wish to +install the Elliptic Curve Cryptography library, you may delete the library +named libsunec.so (on Solaris and Linux systems) or sunec.dll (on Windows +systems) from the JRE bin directory reserved for native libraries. + + +--- begin of LICENSE --- + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + 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. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to ECMAScript Language +Specification ECMA-262 Edition 5.1 which may be included with +JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright notice +Copyright © 2011 Ecma International +Ecma International +Rue du Rhone 114 +CH-1204 Geneva +Tel: +41 22 849 6000 +Fax: +41 22 849 6001 +Web: http://www.ecma-international.org + +This document and possible translations of it may be copied and furnished to +others, and derivative works that comment on or otherwise explain it or assist +in its implementation may be prepared, copied, published, and distributed, in +whole or in part, without restriction of any kind, provided that the above +copyright notice and this section are included on all such copies and derivative +works. However, this document itself may not be modified in any way, including +by removing the copyright notice or references to Ecma International, except as +needed for the purpose of developing any document or deliverable produced by +Ecma International (in which case the rules applied to copyrights must be +followed) or as required to translate it into languages other than English. The +limited permissions granted above are perpetual and will not be revoked by Ecma +International or its successors or assigns. This document and the information +contained herein is provided on an "AS IS" basis and ECMA INTERNATIONAL +DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY +WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP +RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE." Software License + +All Software contained in this document ("Software)" is protected by copyright +and is being made available under the "BSD License", included below. This +Software may be subject to third party rights (rights from parties other than +Ecma International), including patent rights, and no licenses under such third +party rights are granted under this license even if the third party concerned is +a member of Ecma International. SEE THE ECMA CODE OF CONDUCT IN PATENT MATTERS +AVAILABLE AT http://www.ecma-international.org/memento/codeofconduct.htm FOR +INFORMATION REGARDING THE LICENSING OF PATENT CLAIMS THAT ARE REQUIRED TO +IMPLEMENT ECMA INTERNATIONAL STANDARDS*. Redistribution and use in source and +binary forms, with or without modification, are permitted provided that the +following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the authors nor Ecma International may be used to endorse +or promote products derived from this software without specific prior written +permission. + +THIS SOFTWARE IS PROVIDED BY THE ECMA INTERNATIONAL "AS IS" AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT +SHALL ECMA INTERNATIONAL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. +--- end of LICENSE --- + +%% This notice is provided with respect to Dynalink library which is included +with the Nashorn technology. + +--- begin of LICENSE --- +Copyright (c) 2009-2013, Attila Szegedi + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +* Neither the name of the copyright holder nor the names of + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--- end of LICENSE --- + +%% This notice is provided with respect to Joni library which is included +with the Nashorn technology. + +--- begin of LICENSE --- +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to FontConfig 2.5, which may be +included with JRE 8, JDK 8, and OpenJDK 8 source distributions on +Linux and Solaris. + +--- begin of LICENSE --- + +Copyright © 2001,2003 Keith Packard + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that the +above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation, and that +the name of Keith Packard not be used in advertising or publicity pertaining +to distribution of the software without specific, written prior permission. +Keith Packard makes no representations about the suitability of this software +for any purpose. It is provided "as is" without express or implied warranty. + +KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL KEITH +PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to IAIK PKCS#11 Wrapper, +which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +IAIK PKCS#11 Wrapper License + +Copyright (c) 2002 Graz University of Technology. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. The end-user documentation included with the redistribution, if any, must + include the following acknowledgment: + + "This product includes software developed by IAIK of Graz University of + Technology." + + Alternately, this acknowledgment may appear in the software itself, if and + wherever such third-party acknowledgments normally appear. + +4. The names "Graz University of Technology" and "IAIK of Graz University of + Technology" must not be used to endorse or promote products derived from this + software without prior written permission. + +5. Products derived from this software may not be called "IAIK PKCS Wrapper", + nor may "IAIK" appear in their name, without prior written permission of + Graz University of Technology. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +LICENSOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to ICU4C 4.0.1 and ICU4J 4.4, which +may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (c) 1995-2010 International Business Machines Corporation and others + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, and/or sell copies of the +Software, and to permit persons to whom the Software is furnished to do so, +provided that the above copyright notice(s) and this permission notice appear +in all copies of the Software and that both the above copyright notice(s) and +this permission notice appear in supporting documentation. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN +NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE +LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization of the copyright holder. +All trademarks and registered trademarks mentioned herein are the property of +their respective owners. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to IJG JPEG 6b, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +This software is copyright (C) 1991-1998, Thomas G. Lane. +All Rights Reserved except as specified below. + +Permission is hereby granted to use, copy, modify, and distribute this +software (or portions thereof) for any purpose, without fee, subject to these +conditions: +(1) If any part of the source code for this software is distributed, then this +README file must be included, with this copyright and no-warranty notice +unaltered; and any additions, deletions, or changes to the original files +must be clearly indicated in accompanying documentation. +(2) If only executable code is distributed, then the accompanying +documentation must state that "this software is based in part on the work of +the Independent JPEG Group". +(3) Permission for use of this software is granted only if the user accepts +full responsibility for any undesirable consequences; the authors accept +NO LIABILITY for damages of any kind. + +These conditions apply to any software derived from or based on the IJG code, +not just to the unmodified library. If you use our work, you ought to +acknowledge us. + +Permission is NOT granted for the use of any IJG author's name or company name +in advertising or publicity relating to this software or products derived from +it. This software may be referred to only as "the Independent JPEG Group's +software". + +We specifically permit and encourage the use of this software as the basis of +commercial products, provided that all warranty or liability claims are +assumed by the product vendor. + +--- end of LICENSE --- + +-------------------------------------------------------------------------------- + +%% This notice is provided with respect to Joni v1.1.9, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to JOpt-Simple v3.0, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + + Copyright (c) 2004-2009 Paul R. Holser, Jr. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--- end of LICENSE --- + +-------------------------------------------------------------------------------- + +%% This notice is provided with respect to Kerberos functionality, which +which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + + (C) Copyright IBM Corp. 1999 All Rights Reserved. + Copyright 1997 The Open Group Research Institute. All rights reserved. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Kerberos functionality from +FundsXpress, INC., which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + + Copyright (C) 1998 by the FundsXpress, INC. + + All rights reserved. + + Export of this software from the United States of America may require + a specific license from the United States Government. It is the + responsibility of any person or organization contemplating export to + obtain such a license before exporting. + + WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + distribute this software and its documentation for any purpose and + without fee is hereby granted, provided that the above copyright + notice appear in all copies and that both that copyright notice and + this permission notice appear in supporting documentation, and that + the name of FundsXpress. not be used in advertising or publicity pertaining + to distribution of the software without specific, written prior + permission. FundsXpress makes no representations about the suitability of + this software for any purpose. It is provided "as is" without express + or implied warranty. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Kronos OpenGL headers, which may be +included with JDK 8 and OpenJDK 8 source distributions. + +--- begin of LICENSE --- + + Copyright (c) 2007 The Khronos Group Inc. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and/or associated documentation files (the "Materials"), to + deal in the Materials without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Materials, and to permit persons to whom the Materials are + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Materials. + + THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE + MATERIALS. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% Portions Copyright Eastman Kodak Company 1992 + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to libpng 1.5.4, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +This copy of the libpng notices is provided for your convenience. In case of +any discrepancy between this copy and the notices in the file png.h that is +included in the libpng distribution, the latter shall prevail. + +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: + +If you modify libpng you may insert additional notices immediately following +this sentence. + +This code is released under the libpng license. + +libpng versions 1.2.6, August 15, 2004, through 1.5.4, July 7, 2011, are +Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-1.2.5 +with the following individual added to the list of Contributing Authors + + Cosmin Truta + +libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are +Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-1.0.6 +with the following individuals added to the list of Contributing Authors + + Simon-Pierre Cadieux + Eric S. Raymond + Gilles Vollant + +and with the following additions to the disclaimer: + + There is no warranty against interference with your enjoyment of the + library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is with + the user. + +libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are +Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-0.96, +with the following individuals added to the list of Contributing Authors: + + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + +libpng versions 0.89, June 1996, through 0.96, May 1997, are +Copyright (c) 1996, 1997 Andreas Dilger +Distributed according to the same disclaimer and license as libpng-0.88, +with the following individuals added to the list of Contributing Authors: + + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + +libpng versions 0.5, May 1995, through 0.88, January 1996, are +Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. + +For the purposes of this copyright and license, "Contributing Authors" +is defined as the following set of individuals: + + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + +The PNG Reference Library is supplied "AS IS". The Contributing Authors +and Group 42, Inc. disclaim all warranties, expressed or implied, +including, without limitation, the warranties of merchantability and of +fitness for any purpose. The Contributing Authors and Group 42, Inc. +assume no liability for direct, indirect, incidental, special, exemplary, +or consequential damages, which may result from the use of the PNG +Reference Library, even if advised of the possibility of such damage. + +Permission is hereby granted to use, copy, modify, and distribute this +source code, or portions hereof, for any purpose, without fee, subject +to the following restrictions: + +1. The origin of this source code must not be misrepresented. + +2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + +3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + +The Contributing Authors and Group 42, Inc. specifically permit, without +fee, and encourage the use of this source code as a component to +supporting the PNG file format in commercial products. If you use this +source code in a product, acknowledgment is not required but would be +appreciated. + + +A "png_get_copyright" function is available, for convenient use in "about" +boxes and the like: + + printf("%s",png_get_copyright(NULL)); + +Also, the PNG logo (in PNG format, of course) is supplied in the +files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). + +Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a +certification mark of the Open Source Initiative. + +Glenn Randers-Pehrson +glennrp at users.sourceforge.net +July 7, 2011 + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to libungif 4.1.3, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +The GIFLIB distribution is Copyright (c) 1997 Eric S. Raymond + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Little CMS 2.5, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Little CMS +Copyright (c) 1998-2011 Marti Maria Saguer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% Lucida is a registered trademark or trademark of Bigelow & Holmes in the +U.S. and other countries. + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Mesa 3D Graphics Library v4.1, +which may be included with JRE 8, JDK 8, and OpenJDK 8 source distributions. + +--- begin of LICENSE --- + + Mesa 3-D graphics library + Version: 4.1 + + Copyright (C) 1999-2002 Brian Paul All Rights Reserved. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Mozilla Network Security +Services (NSS), which is supplied with the JDK test suite in the OpenJDK +source code repository. It is licensed under Mozilla Public License (MPL), +version 2.0. + +The NSS libraries are supplied in executable form, built from unmodified +NSS source code labeled with the "NSS_3.13.1_RTM" release tag. + +The NSS source code is available in the OpenJDK source code repository at: + jdk/test/sun/security/pkcs11/nss/src + +The NSS libraries are available in the OpenJDK source code repository at: + jdk/test/sun/security/pkcs11/nss/lib + +--- begin of LICENSE --- + +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to PC/SC Lite for Suse Linux v.1.1.1, +which may be included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris. + +--- begin of LICENSE --- + +Copyright (c) 1999-2004 David Corcoran <corcoran@linuxnet.com> +Copyright (c) 1999-2004 Ludovic Rousseau <ludovic.rousseau (at) free.fr> +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by: + David Corcoran <corcoran@linuxnet.com> + http://www.linuxnet.com (MUSCLE) +4. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +Changes to this license can be made only by the copyright author with +explicit written consent. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to PorterStemmer v4, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +See: http://tartarus.org/~martin/PorterStemmer + +The software is completely free for any purpose, unless notes at the head of +the program text indicates otherwise (which is rare). In any case, the notes +about licensing are never more restrictive than the BSD License. + +In every case where the software is not written by me (Martin Porter), this +licensing arrangement has been endorsed by the contributor, and it is +therefore unnecessary to ask the contributor again to confirm it. + +I have not asked any contributors (or their employers, if they have them) for +proofs that they have the right to distribute their software in this way. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Relax NG Object/Parser v.20050510, +which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (c) Kohsuke Kawaguchi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: The above copyright +notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to RelaxNGCC v1.12, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (c) 2000-2003 Daisuke Okajima and Kohsuke Kawaguchi. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. The end-user documentation included with the redistribution, if any, must + include the following acknowledgment: + + "This product includes software developed by Daisuke Okajima + and Kohsuke Kawaguchi (http://relaxngcc.sf.net/)." + +Alternately, this acknowledgment may appear in the software itself, if and +wherever such third-party acknowledgments normally appear. + +4. The names of the copyright holders must not be used to endorse or promote + products derived from this software without prior written permission. For + written permission, please contact the copyright holders. + +5. Products derived from this software may not be called "RELAXNGCC", nor may + "RELAXNGCC" appear in their name, without prior written permission of the + copyright holders. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.IN NO EVENT SHALL THE APACHE +SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to SAX 2.0.1, which may be included +with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + + SAX is free! + + In fact, it's not possible to own a license to SAX, since it's been placed in + the public domain. + + No Warranty + + Because SAX is released to the public domain, there is no warranty for the + design or for the software implementation, to the extent permitted by + applicable law. Except when otherwise stated in writing the copyright holders + and/or other parties provide SAX "as is" without warranty of any kind, either + expressed or implied, including, but not limited to, the implied warranties + of merchantability and fitness for a particular purpose. The entire risk as + to the quality and performance of SAX is with you. Should SAX prove + defective, you assume the cost of all necessary servicing, repair or + correction. + + In no event unless required by applicable law or agreed to in writing will + any copyright holder, or any other party who may modify and/or redistribute + SAX, be liable to you for damages, including any general, special, incidental + or consequential damages arising out of the use or inability to use SAX + (including but not limited to loss of data or data being rendered inaccurate + or losses sustained by you or third parties or a failure of the SAX to + operate with any other programs), even if such holder or other party has been + advised of the possibility of such damages. + + Copyright Disclaimers + + This page includes statements to that effect by David Megginson, who would + have been able to claim copyright for the original work. SAX 1.0 + + Version 1.0 of the Simple API for XML (SAX), created collectively by the + membership of the XML-DEV mailing list, is hereby released into the public + domain. + + No one owns SAX: you may use it freely in both commercial and non-commercial + applications, bundle it with your software distribution, include it on a + CD-ROM, list the source code in a book, mirror the documentation at your own + web site, or use it in any other way you see fit. + + David Megginson, sax@megginson.com + 1998-05-11 + + SAX 2.0 + + I hereby abandon any property rights to SAX 2.0 (the Simple API for XML), and + release all of the SAX 2.0 source code, compiled code, and documentation + contained in this distribution into the Public Domain. SAX comes with NO + WARRANTY or guarantee of fitness for any purpose. + + David Megginson, david@megginson.com + 2000-05-05 + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to SoftFloat version 2b, which may be +included with JRE 8, JDK 8, and OpenJDK 8 on Linux/ARM. + +--- begin of LICENSE --- + +Use of any of this software is governed by the terms of the license below: + +SoftFloat was written by me, John R. Hauser. This work was made possible in +part by the International Computer Science Institute, located at Suite 600, +1947 Center Street, Berkeley, California 94704. Funding was partially +provided by the National Science Foundation under grant MIP-9311980. The +original version of this code was written as part of a project to build +a fixed-point vector processor in collaboration with the University of +California at Berkeley, overseen by Profs. Nelson Morgan and John Wawrzynek. + +THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort +has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT +TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO +PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL +LOSSES, COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO +FURTHERMORE EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER +SCIENCE INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, +COSTS, OR OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE +SOFTWARE. + +Derivative works are acceptable, even for commercial purposes, provided +that the minimal documentation requirements stated in the source code are +satisfied. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Sparkle 1.5, +which may be included with JRE 8 on Mac OS X. + +--- begin of LICENSE --- + +Copyright (c) 2012 Sparkle.org and Andy Matuschak + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% Portions licensed from Taligent, Inc. + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Thai Dictionary, which may be +included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Copyright (C) 1982 The Royal Institute, Thai Royal Government. + +Copyright (C) 1998 National Electronics and Computer Technology Center, +National Science and Technology Development Agency, +Ministry of Science Technology and Environment, +Thai Royal Government. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Unicode 6.2.0 & CLDR 21.0.1 +which may be included with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + +Unicode Terms of Use + +For the general privacy policy governing access to this site, see the Unicode +Privacy Policy. For trademark usage, see the Unicode® Consortium Name and +Trademark Usage Policy. + +A. Unicode Copyright. + 1. Copyright © 1991-2013 Unicode, Inc. All rights reserved. + + 2. Certain documents and files on this website contain a legend indicating + that "Modification is permitted." Any person is hereby authorized, + without fee, to modify such documents and files to create derivative + works conforming to the Unicode® Standard, subject to Terms and + Conditions herein. + + 3. Any person is hereby authorized, without fee, to view, use, reproduce, + and distribute all documents and files solely for informational + purposes in the creation of products supporting the Unicode Standard, + subject to the Terms and Conditions herein. + + 4. Further specifications of rights and restrictions pertaining to the use + of the particular set of data files known as the "Unicode Character + Database" can be found in Exhibit 1. + + 5. Each version of the Unicode Standard has further specifications of + rights and restrictions of use. For the book editions (Unicode 5.0 and + earlier), these are found on the back of the title page. The online + code charts carry specific restrictions. All other files, including + online documentation of the core specification for Unicode 6.0 and + later, are covered under these general Terms of Use. + + 6. No license is granted to "mirror" the Unicode website where a fee is + charged for access to the "mirror" site. + + 7. Modification is not permitted with respect to this document. All copies + of this document must be verbatim. + +B. Restricted Rights Legend. Any technical data or software which is licensed + to the United States of America, its agencies and/or instrumentalities + under this Agreement is commercial technical data or commercial computer + software developed exclusively at private expense as defined in FAR 2.101, + or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, + duplication, or disclosure by the Government is subject to restrictions as + set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov + 1995) and this Agreement. For Software, in accordance with FAR 12-212 or + DFARS 227-7202, as applicable, use, duplication or disclosure by the + Government is subject to the restrictions set forth in this Agreement. + +C. Warranties and Disclaimers. + 1. This publication and/or website may include technical or typographical + errors or other inaccuracies . Changes are periodically added to the + information herein; these changes will be incorporated in new editions + of the publication and/or website. Unicode may make improvements and/or + changes in the product(s) and/or program(s) described in this + publication and/or website at any time. + + 2. If this file has been purchased on magnetic or optical media from + Unicode, Inc. the sole and exclusive remedy for any claim will be + exchange of the defective media within ninety (90) days of original + purchase. + + 3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR SOFTWARE IS + PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED, + OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. + UNICODE AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR + OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH + ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE. + +D. Waiver of Damages. In no event shall Unicode or its licensors be liable for + any special, incidental, indirect or consequential damages of any kind, or + any damages whatsoever, whether or not Unicode was advised of the + possibility of the damage, including, without limitation, those resulting + from the following: loss of use, data or profits, in connection with the + use, modification or distribution of this information or its derivatives. + +E.Trademarks & Logos. + 1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, + Inc. “The Unicode Consortium†and “Unicode, Inc.†are trade names of + Unicode, Inc. Use of the information and materials found on this + website indicates your acknowledgement of Unicode, Inc.’s exclusive + worldwide rights in the Unicode Word Mark, the Unicode Logo, and the + Unicode trade names. + + 2. The Unicode Consortium Name and Trademark Usage Policy (“Trademark + Policyâ€) are incorporated herein by reference and you agree to abide by + the provisions of the Trademark Policy, which may be changed from time + to time in the sole discretion of Unicode, Inc. + + 3. All third party trademarks referenced herein are the property of their + respective owners. + +Miscellaneous. + 1. Jurisdiction and Venue. This server is operated from a location in the + State of California, United States of America. Unicode makes no + representation that the materials are appropriate for use in other + locations. If you access this server from other locations, you are + responsible for compliance with local laws. This Agreement, all use of + this site and any claims and damages resulting from use of this site are + governed solely by the laws of the State of California without regard to + any principles which would apply the laws of a different jurisdiction. + The user agrees that any disputes regarding this site shall be resolved + solely in the courts located in Santa Clara County, California. The user + agrees said courts have personal jurisdiction and agree to waive any + right to transfer the dispute to any other forum. + + 2. Modification by Unicode. Unicode shall have the right to modify this + Agreement at any time by posting it to this site. The user may not + assign any part of this Agreement without Unicode’s prior written + consent. + + 3. Taxes. The user agrees to pay any taxes arising from access to this + website or use of the information herein, except for those based on + Unicode’s net income. + + 4. Severability. If any provision of this Agreement is declared invalid or + unenforceable, the remaining provisions of this Agreement shall remain + in effect. + + 5. Entire Agreement. This Agreement constitutes the entire agreement + between the parties. + +EXHIBIT 1 +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE + +Unicode Data Files include all data files under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, and +http://www.unicode.org/cldr/data/. Unicode Data Files do not include PDF +online code charts under the directory http://www.unicode.org/Public/. +Software includes any source code published in the Unicode Standard or under +the directories http://www.unicode.org/Public/, +http://www.unicode.org/reports/, and http://www.unicode.org/cldr/data/. + +NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, +INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA +FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO +BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT +AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR +SOFTWARE. + +COPYRIGHT AND PERMISSION NOTICE + +Copyright © 1991-2012 Unicode, Inc. All rights reserved. Distributed under the +Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the Unicode data files and any associated documentation (the "Data Files") +or Unicode software and any associated documentation (the "Software") to deal +in the Data Files or Software without restriction, including without +limitation the rights to use, copy, modify, merge, publish, distribute, and/or +sell copies of the Data Files or Software, and to permit persons to whom the +Data Files or Software are furnished to do so, provided that (a) the above +copyright notice(s) and this permission notice appear with all copies of the +Data Files or Software, (b) both the above copyright notice(s) and this +permission notice appear in associated documentation, and (c) there is clear +notice in each modified Data File or in the Software as well as in the +documentation associated with the Data File(s) or Software that the data or +software has been modified. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD +PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN +THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR +PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE +DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in these Data Files or Software without prior written authorization of the +copyright holder. + +Unicode and the Unicode logo are trademarks of Unicode, Inc. in the United +States and other countries. All third party trademarks referenced herein are +the property of their respective owners. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to UPX v3.01, which may be included +with JRE 8 on Windows. + +--- begin of LICENSE --- + +Use of any of this software is governed by the terms of the license below: + + + ooooo ooo ooooooooo. ooooooo ooooo + `888' `8' `888 `Y88. `8888 d8' + 888 8 888 .d88' Y888..8P + 888 8 888ooo88P' `8888' + 888 8 888 .8PY888. + `88. .8' 888 d8' `888b + `YbodP' o888o o888o o88888o + + + The Ultimate Packer for eXecutables + Copyright (c) 1996-2000 Markus Oberhumer & Laszlo Molnar + http://wildsau.idv.uni-linz.ac.at/mfx/upx.html + http://www.nexus.hu/upx + http://upx.tsx.org + + +PLEASE CAREFULLY READ THIS LICENSE AGREEMENT, ESPECIALLY IF YOU PLAN +TO MODIFY THE UPX SOURCE CODE OR USE A MODIFIED UPX VERSION. + + +ABSTRACT +======== + + UPX and UCL are copyrighted software distributed under the terms + of the GNU General Public License (hereinafter the "GPL"). + + The stub which is imbedded in each UPX compressed program is part + of UPX and UCL, and contains code that is under our copyright. The + terms of the GNU General Public License still apply as compressing + a program is a special form of linking with our stub. + + As a special exception we grant the free usage of UPX for all + executables, including commercial programs. + See below for details and restrictions. + + +COPYRIGHT +========= + + UPX and UCL are copyrighted software. All rights remain with the authors. + + UPX is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer + UPX is Copyright (C) 1996-2000 Laszlo Molnar + + UCL is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer + + +GNU GENERAL PUBLIC LICENSE +========================== + + UPX and the UCL library are free software; you can redistribute them + and/or modify them under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + UPX and UCL are distributed in the hope that they will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. + + +SPECIAL EXCEPTION FOR COMPRESSED EXECUTABLES +============================================ + + The stub which is imbedded in each UPX compressed program is part + of UPX and UCL, and contains code that is under our copyright. The + terms of the GNU General Public License still apply as compressing + a program is a special form of linking with our stub. + + Hereby Markus F.X.J. Oberhumer and Laszlo Molnar grant you special + permission to freely use and distribute all UPX compressed programs + (including commercial ones), subject to the following restrictions: + + 1. You must compress your program with a completely unmodified UPX + version; either with our precompiled version, or (at your option) + with a self compiled version of the unmodified UPX sources as + distributed by us. + 2. This also implies that the UPX stub must be completely unmodfied, i.e. + the stub imbedded in your compressed program must be byte-identical + to the stub that is produced by the official unmodified UPX version. + 3. The decompressor and any other code from the stub must exclusively get + used by the unmodified UPX stub for decompressing your program at + program startup. No portion of the stub may get read, copied, + called or otherwise get used or accessed by your program. + + +ANNOTATIONS +=========== + + - You can use a modified UPX version or modified UPX stub only for + programs that are compatible with the GNU General Public License. + + - We grant you special permission to freely use and distribute all UPX + compressed programs. But any modification of the UPX stub (such as, + but not limited to, removing our copyright string or making your + program non-decompressible) will immediately revoke your right to + use and distribute a UPX compressed program. + + - UPX is not a software protection tool; by requiring that you use + the unmodified UPX version for your proprietary programs we + make sure that any user can decompress your program. This protects + both you and your users as nobody can hide malicious code - + any program that cannot be decompressed is highly suspicious + by definition. + + - You can integrate all or part of UPX and UCL into projects that + are compatible with the GNU GPL, but obviously you cannot grant + any special exceptions beyond the GPL for our code in your project. + + - We want to actively support manufacturers of virus scanners and + similar security software. Please contact us if you would like to + incorporate parts of UPX or UCL into such a product. + + + +Markus F.X.J. Oberhumer Laszlo Molnar +markus.oberhumer@jk.uni-linz.ac.at ml1050@cdata.tvnet.hu + +Linz, Austria, 25 Feb 2000 + +Additional License(s) + +The UPX license file is at http://upx.sourceforge.net/upx-license.html. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to Xfree86-VidMode Extension 1.0, +which may be included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris. + +--- begin of LICENSE --- + +Version 1.1 of XFree86 ProjectLicence. + +Copyright (C) 1994-2004 The XFree86 Project, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicence, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so,subject to the following conditions: + + 1. Redistributions of source code must retain the above copyright + notice,this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution, and in the same place + and form as other copyright, license and disclaimer information. + + 3. The end-user documentation included with the redistribution, if any,must + include the following acknowledgment: "This product includes + software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and + its contributors", in the same place and form as other third-party + acknowledgments. Alternately, this acknowledgment may appear in the software + itself, in the same form and location as other such third-party + acknowledgments. + + 4. Except as contained in this notice, the name of The XFree86 Project,Inc + shall not be used in advertising or otherwise to promote the sale, use + or other dealings in this Software without prior written authorization from + The XFree86 Project, Inc. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + EVENT SHALL THE XFREE86 PROJECT, INC OR ITS CONTRIBUTORS BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO,PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + DAMAGE. + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to X Window System 6.8.2, which may be +included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris. + +--- begin of LICENSE --- + + Licenses +The X.Org Foundation March 2004 + +1. Introduction + +The X.org Foundation X Window System distribution is a compilation of code and +documentation from many sources. This document is intended primarily as a +guide to the licenses used in the distribution: you must check each file +and/or package for precise redistribution terms. None-the-less, this summary +may be useful to many users. No software incorporating the XFree86 1.1 license +has been incorporated. + +This document is based on the compilation from XFree86. + +2. XFree86 License + +XFree86 code without an explicit copyright is covered by the following +copyright/license: + +Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the XFree86 Project shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the XFree86 Project. + +3. Other Licenses + +Portions of code are covered by the following licenses/copyrights. See +individual files for the copyright dates. + +3.1. X/MIT Copyrights + +3.1.1. X Consortium + +Copyright (C) <date> X Consortium + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X +CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall not be +used in advertising or otherwise to promote the sale, use or other dealings in +this Software without prior written authorization from the X Consortium. + +X Window System is a trademark of X Consortium, Inc. + +3.1.2. The Open Group + +Copyright <date> The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that the +above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation. + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings in +this Software without prior written authorization from The Open Group. 3.2. +Berkeley-based copyrights: + +o +3.2.1. General + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. 3.2.2. UCB/LBL + +Copyright (c) 1993 The Regents of the University of California. All rights +reserved. + +This software was developed by the Computer Systems Engineering group at +Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and contributed to +Berkeley. + +All advertising materials mentioning features or use of this software must +display the following acknowledgement: This product includes software +developed by the University of California, Lawrence Berkeley Laboratory. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: This product includes software + developed by the University of California, Berkeley and its contributors. + + 4. Neither the name of the University nor the names of its contributors may + be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3.2.3. The +NetBSD Foundation, Inc. + +Copyright (c) 2003 The NetBSD Foundation, Inc. All rights reserved. + +This code is derived from software contributed to The NetBSD Foundation by Ben +Collver <collver1@attbi.com> + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: This product includes software + developed by the NetBSD Foundation, Inc. and its contributors. + + 4. Neither the name of The NetBSD Foundation nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS ``AS +IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3.2.4. Theodore +Ts'o. + +Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999. All rights +reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + and the entire permission notice in its entirety, including the disclaimer + of warranties. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. he name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED. IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. 3.2.5. Theo de Raadt and Damien Miller + +Copyright (c) 1995,1999 Theo de Raadt. All rights reserved. Copyright (c) +2001-2002 Damien Miller. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. 3.2.6. Todd C. Miller + +Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> + +Permission to use, copy, modify, and distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright +notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 3.2.7. Thomas +Winischhofer + +Copyright (C) 2001-2004 Thomas Winischhofer + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. 3.3. NVIDIA Corp + +Copyright (c) 1996 NVIDIA, Corp. All rights reserved. + +NOTICE TO USER: The source code is copyrighted under U.S. and international +laws. NVIDIA, Corp. of Sunnyvale, California owns the copyright and as design +patents pending on the design and interface of the NV chips. Users and +possessors of this source code are hereby granted a nonexclusive, royalty-free +copyright and design patent license to use this code in individual and +commercial software. + +Any use of this source code must include, in the user documentation and +internal comments to the code, notices to the end user as follows: + +Copyright (c) 1996 NVIDIA, Corp. NVIDIA design patents pending in the U.S. and +foreign countries. + +NVIDIA, CORP. MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE +CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED +WARRANTY OF ANY KIND. NVIDIA, CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA, CORP. BE LIABLE +FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE. 3.4. GLX Public +License + +GLX PUBLIC LICENSE (Version 1.0 (2/11/99)) ("License") + +Subject to any third party claims, Silicon Graphics, Inc. ("SGI") hereby +grants permission to Recipient (defined below), under Recipient's copyrights +in the Original Software (defined below), to use, copy, modify, merge, +publish, distribute, sublicense and/or sell copies of Subject Software +(defined below), and to permit persons to whom the Subject Software is +furnished in accordance with this License to do the same, subject to all of +the following terms and conditions, which Recipient accepts by engaging in any +such use, copying, modifying, merging, publishing, distributing, sublicensing +or selling: + +1. Definitions. + + (a) "Original Software" means source code of computer software code which + is described in Exhibit A as Original Software. + + (b) "Modifications" means any addition to or deletion from the substance + or structure of either the Original Software or any previous + Modifications. When Subject Software is released as a series of files, a + Modification means (i) any addition to or deletion from the contents of a + file containing Original Software or previous Modifications and (ii) any + new file that contains any part of the Original Code or previous + Modifications. + + (c) "Subject Software" means the Original Software or Modifications or the + combination of the Original Software and Modifications, or portions of any + of the foregoing. + + (d) "Recipient" means an individual or a legal entity exercising rights + under, and complying with all of the terms of, this License. For legal + entities, "Recipient" includes any entity which controls, is controlled + by, or is under common control with Recipient. For purposes of this + definition, "control" of an entity means (a) the power, direct or + indirect, to direct or manage such entity, or (b) ownership of fifty + percent (50%) or more of the outstanding shares or beneficial ownership of + such entity. + +2. Redistribution of Source Code Subject to These Terms. Redistributions of +Subject Software in source code form must retain the notice set forth in +Exhibit A, below, in every file. A copy of this License must be included in +any documentation for such Subject Software where the recipients' rights +relating to Subject Software are described. Recipient may distribute the +source code version of Subject Software under a license of Recipient's choice, +which may contain terms different from this License, provided that (i) +Recipient is in compliance with the terms of this License, and (ii) the +license terms include this Section 2 and Sections 3, 4, 7, 8, 10, 12 and 13 of +this License, which terms may not be modified or superseded by any other terms +of such license. If Recipient distributes the source code version under a +different license Recipient must make it absolutely clear that any terms which +differ from this License are offered by Recipient alone, not by SGI. Recipient +hereby agrees to indemnify SGI for any liability incurred by SGI as a result +of any such terms Recipient offers. + +3. Redistribution in Executable Form. The notice set forth in Exhibit A must +be conspicuously included in any notice in an executable version of Subject +Software, related documentation or collateral in which Recipient describes the +user's rights relating to the Subject Software. Recipient may distribute the +executable version of Subject Software under a license of Recipient's choice, +which may contain terms different from this License, provided that (i) +Recipient is in compliance with the terms of this License, and (ii) the +license terms include this Section 3 and Sections 4, 7, 8, 10, 12 and 13 of +this License, which terms may not be modified or superseded by any other terms +of such license. If Recipient distributes the executable version under a +different license Recipient must make it absolutely clear that any terms which +differ from this License are offered by Recipient alone, not by SGI. Recipient +hereby agrees to indemnify SGI for any liability incurred by SGI as a result +of any such terms Recipient offers. + +4. Termination. This License and the rights granted hereunder will terminate +automatically if Recipient fails to comply with terms herein and fails to cure +such breach within 30 days of the breach. Any sublicense to the Subject +Software which is properly granted shall survive any termination of this +License absent termination by the terms of such sublicense. Provisions which, +by their nature, must remain in effect beyond the termination of this License +shall survive. + +5. No Trademark Rights. This License does not grant any rights to use any +trade name, trademark or service mark whatsoever. No trade name, trademark or +service mark of SGI may be used to endorse or promote products derived from +the Subject Software without prior written permission of SGI. + +6. No Other Rights. This License does not grant any rights with respect to the +OpenGL API or to any software or hardware implementation thereof or to any +other software whatsoever, nor shall any other rights or licenses not +expressly granted hereunder arise by implication, estoppel or otherwise with +respect to the Subject Software. Title to and ownership of the Original +Software at all times remains with SGI. All rights in the Original Software +not expressly granted under this License are reserved. + +7. Compliance with Laws; Non-Infringement. Recipient shall comply with all +applicable laws and regulations in connection with use and distribution of the +Subject Software, including but not limited to, all export and import control +laws and regulations of the U.S. government and other countries. Recipient may +not distribute Subject Software that (i) in any way infringes (directly or +contributorily) the rights (including patent, copyright, trade secret, +trademark or other intellectual property rights of any kind) of any other +person or entity or (ii) breaches any representation or warranty, express, +implied or statutory, which under any applicable law it might be deemed to +have been distributed. + +8. Claims of Infringement. If Recipient at any time has knowledge of any one +or more third party claims that reproduction, modification, use, distribution, +import or sale of Subject Software (including particular functionality or code +incorporated in Subject Software) infringes the third party's intellectual +property rights, Recipient must place in a well-identified web page bearing +the title "LEGAL" a description of each such claim and a description of the +party making each such claim in sufficient detail that a user of the Subject +Software will know whom to contact regarding the claim. Also, upon gaining +such knowledge of any such claim, Recipient must conspicuously include the URL +for such web page in the Exhibit A notice required under Sections 2 and 3, +above, and in the text of any related documentation, license agreement or +collateral in which Recipient describes end user's rights relating to the +Subject Software. If Recipient obtains such knowledge after it makes Subject +Software available to any other person or entity, Recipient shall take other +steps (such as notifying appropriate mailing lists or newsgroups) reasonably +calculated to inform those who received the Subject Software that new +knowledge has been obtained. + +9. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, +WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT +LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, +MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON- INFRINGING. SGI ASSUMES NO +RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE +PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY +SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN +ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED +HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, +WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY), +CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY +CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK +STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER +COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF +THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY +TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO +THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT +ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO +THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT. + +11. Indemnity. Recipient shall be solely responsible for damages arising, +directly or indirectly, out of its utilization of rights under this License. +Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc. from +and against any loss, liability, damages, costs or expenses (including the +payment of reasonable attorneys fees) arising out of Recipient's use, +modification, reproduction and distribution of the Subject Software or out of +any representation or warranty made by Recipient. + +12. U.S. Government End Users. The Subject Software is a "commercial item" +consisting of "commercial computer software" as such terms are defined in +title 48 of the Code of Federal Regulations and all U.S. Government End Users +acquire only the rights set forth in this License and are subject to the terms +of this License. + +13. Miscellaneous. This License represents the complete agreement concerning +subject matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed so as to achieve as nearly as +possible the same economic effect as the original provision and the remainder +of this License will remain in effect. This License shall be governed by and +construed in accordance with the laws of the United States and the State of +California as applied to agreements entered into and to be performed entirely +within California between California residents. Any litigation relating to +this License shall be subject to the exclusive jurisdiction of the Federal +Courts of the Northern District of California (or, absent subject matter +jurisdiction in such courts, the courts of the State of California), with +venue lying exclusively in Santa Clara County, California, with the losing +party responsible for costs, including without limitation, court costs and +reasonable attorneys fees and expenses. The application of the United Nations +Convention on Contracts for the International Sale of Goods is expressly +excluded. Any law or regulation which provides that the language of a contract +shall be construed against the drafter shall not apply to this License. + +Exhibit A + +The contents of this file are subject to Sections 2, 3, 4, 7, 8, 10, 12 and 13 +of the GLX Public License Version 1.0 (the "License"). You may not use this +file except in compliance with those sections of the License. You may obtain a +copy of the License at Silicon Graphics, Inc., attn: Legal Services, 2011 N. +Shoreline Blvd., Mountain View, CA 94043 or at +http://www.sgi.com/software/opensource/glx/license.html. + +Software distributed under the License is distributed on an "AS IS" basis. ALL +WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED +WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON- +INFRINGEMENT. See the License for the specific language governing rights and +limitations under the License. + +The Original Software is GLX version 1.2 source code, released February, 1999. +The developer of the Original Software is Silicon Graphics, Inc. Those +portions of the Subject Software created by Silicon Graphics, Inc. are +Copyright (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved. 3.5. CID +Font Code Public License + +CID FONT CODE PUBLIC LICENSE (Version 1.0 (3/31/99))("License") + +Subject to any applicable third party claims, Silicon Graphics, Inc. ("SGI") +hereby grants permission to Recipient (defined below), under SGI's copyrights +in the Original Software (defined below), to use, copy, modify, merge, +publish, distribute, sublicense and/or sell copies of Subject Software +(defined below) in both source code and executable form, and to permit persons +to whom the Subject Software is furnished in accordance with this License to +do the same, subject to all of the following terms and conditions, which +Recipient accepts by engaging in any such use, copying, modifying, merging, +publication, distributing, sublicensing or selling: + +1. Definitions. + + a. "Original Software" means source code of computer software code that is + described in Exhibit A as Original Software. + + b. "Modifications" means any addition to or deletion from the substance or + structure of either the Original Software or any previous Modifications. + When Subject Software is released as a series of files, a Modification + means (i) any addition to or deletion from the contents of a file + containing Original Software or previous Modifications and (ii) any new + file that contains any part of the Original Code or previous + Modifications. + + c. "Subject Software" means the Original Software or Modifications or the + combination of the Original Software and Modifications, or portions of any + of the foregoing. + + d. "Recipient" means an individual or a legal entity exercising rights + under the terms of this License. For legal entities, "Recipient" includes + any entity that controls, is controlled by, or is under common control + with Recipient. For purposes of this definition, "control" of an entity + means (i) the power, direct or indirect, to direct or manage such entity, + or (ii) ownership of fifty percent (50%) or more of the outstanding shares + or beneficial ownership of such entity. + + e. "Required Notice" means the notice set forth in Exhibit A to this + License. + + f. "Accompanying Technology" means any software or other technology that + is not a Modification and that is distributed or made publicly available + by Recipient with the Subject Software. Separate software files that do + not contain any Original Software or any previous Modification shall not + be deemed a Modification, even if such software files are aggregated as + part of a product, or in any medium of storage, with any file that does + contain Original Software or any previous Modification. + +2. License Terms. All distribution of the Subject Software must be made +subject to the terms of this License. A copy of this License and the Required +Notice must be included in any documentation for Subject Software where +Recipient's rights relating to Subject Software and/or any Accompanying +Technology are described. Distributions of Subject Software in source code +form must also include the Required Notice in every file distributed. In +addition, a ReadMe file entitled "Important Legal Notice" must be distributed +with each distribution of one or more files that incorporate Subject Software. +That file must be included with distributions made in both source code and +executable form. A copy of the License and the Required Notice must be +included in that file. Recipient may distribute Accompanying Technology under +a license of Recipient's choice, which may contain terms different from this +License, provided that (i) Recipient is in compliance with the terms of this +License, (ii) such other license terms do not modify or supersede the terms of +this License as applicable to the Subject Software, (iii) Recipient hereby +indemnifies SGI for any liability incurred by SGI as a result of the +distribution of Accompanying Technology or the use of other license terms. + +3. Termination. This License and the rights granted hereunder will terminate +automatically if Recipient fails to comply with terms herein and fails to cure +such breach within 30 days of the breach. Any sublicense to the Subject +Software that is properly granted shall survive any termination of this +License absent termination by the terms of such sublicense. Provisions which, +by their nature, must remain in effect beyond the termination of this License +shall survive. + +4. Trademark Rights. This License does not grant any rights to use any trade +name, trademark or service mark whatsoever. No trade name, trademark or +service mark of SGI may be used to endorse or promote products derived from or +incorporating any Subject Software without prior written permission of SGI. + +5. No Other Rights. No rights or licenses not expressly granted hereunder +shall arise by implication, estoppel or otherwise. Title to and ownership of +the Original Software at all times remains with SGI. All rights in the +Original Software not expressly granted under this License are reserved. + +6. Compliance with Laws; Non-Infringement. Recipient shall comply with all +applicable laws and regulations in connection with use and distribution of the +Subject Software, including but not limited to, all export and import control +laws and regulations of the U.S. government and other countries. Recipient may +not distribute Subject Software that (i) in any way infringes (directly or +contributorily) the rights (including patent, copyright, trade secret, +trademark or other intellectual property rights of any kind) of any other +person or entity, or (ii) breaches any representation or warranty, express, +implied or statutory, which under any applicable law it might be deemed to +have been distributed. + +7. Claims of Infringement. If Recipient at any time has knowledge of any one +or more third party claims that reproduction, modification, use, distribution, +import or sale of Subject Software (including particular functionality or code +incorporated in Subject Software) infringes the third party's intellectual +property rights, Recipient must place in a well-identified web page bearing +the title "LEGAL" a description of each such claim and a description of the +party making each such claim in sufficient detail that a user of the Subject +Software will know whom to contact regarding the claim. Also, upon gaining +such knowledge of any such claim, Recipient must conspicuously include the URL +for such web page in the Required Notice, and in the text of any related +documentation, license agreement or collateral in which Recipient describes +end user's rights relating to the Subject Software. If Recipient obtains such +knowledge after it makes Subject Software available to any other person or +entity, Recipient shall take other steps (such as notifying appropriate +mailing lists or newsgroups) reasonably calculated to provide such knowledge +to those who received the Subject Software. + +8. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, +WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT +LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, +MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. SGI ASSUMES NO +RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE +PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY +SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN +ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED +HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, +WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY), +CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SUBJECT SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SUBJECT SOFTWARE. SOME JURISDICTIONS DO NOT +ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THIS EXCLUSION AND +LIMITATION MAY NOT APPLY TO RECIPIENT TO THE EXTENT SO DISALLOWED. + +10. Indemnity. Recipient shall be solely responsible for damages arising, +directly or indirectly, out of its utilization of rights under this License. +Recipient will defend, indemnify and hold SGI and its successors and assigns +harmless from and against any loss, liability, damages, costs or expenses +(including the payment of reasonable attorneys fees) arising out of +(Recipient's use, modification, reproduction and distribution of the Subject +Software or out of any representation or warranty made by Recipient. + +11. U.S. Government End Users. The Subject Software is a "commercial item" +consisting of "commercial computer software" as such terms are defined in +title 48 of the Code of Federal Regulations and all U.S. Government End Users +acquire only the rights set forth in this License and are subject to the terms +of this License. + +12. Miscellaneous. This License represents the complete agreement concerning +subject matter hereof. If any provision of this License is held to be +unenforceable by any judicial or administrative authority having proper +jurisdiction with respect thereto, such provision shall be reformed so as to +achieve as nearly as possible the same economic effect as the original +provision and the remainder of this License will remain in effect. This +License shall be governed by and construed in accordance with the laws of the +United States and the State of California as applied to agreements entered +into and to be performed entirely within California between California +residents. Any litigation relating to this License shall be subject to the +exclusive jurisdiction of the Federal Courts of the Northern District of +California (or, absent subject matter jurisdiction in such courts, the courts +of the State of California), with venue lying exclusively in Santa Clara +County, California, with the losing party responsible for costs, including +without limitation, court costs and reasonable attorneys fees and expenses. +The application of the United Nations Convention on Contracts for the +International Sale of Goods is expressly excluded. Any law or regulation that +provides that the language of a contract shall be construed against the +drafter shall not apply to this License. + +Exhibit A + +Copyright (c) 1994-1999 Silicon Graphics, Inc. + +The contents of this file are subject to the CID Font Code Public License +Version 1.0 (the "License"). You may not use this file except in compliance +with the License. You may obtain a copy of the License at Silicon Graphics, +Inc., attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043 +or at http://www.sgi.com/software/opensource/cid/license.html + +Software distributed under the License is distributed on an "AS IS" basis. ALL +WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED +WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF +NON-INFRINGEMENT. See the License for the specific language governing rights +and limitations under the License. + +The Original Software (as defined in the License) is CID font code that was +developed by Silicon Graphics, Inc. Those portions of the Subject Software (as +defined in the License) that were created by Silicon Graphics, Inc. are +Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved. + +[NOTE: When using this text in connection with Subject Software delivered +solely in object code form, Recipient may replace the words "this file" with +"this software" in both the first and second sentences.] 3.6. Bitstream Vera +Fonts Copyright + +The fonts have a generous copyright, allowing derivative works (as long as +"Bitstream" or "Vera" are not in the names), and full redistribution (so long +as they are not *sold* by themselves). They can be be bundled, redistributed +and sold with any software. + +The fonts are distributed under the following copyright: + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a +trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the fonts accompanying this license ("Fonts") and associated documentation +files (the "Font Software"), to reproduce and distribute the Font Software, +including without limitation the rights to use, copy, merge, publish, +distribute, and/or sell copies of the Font Software, and to permit persons to +whom the Font Software is furnished to do so, subject to the following +conditions: + +The above copyright and trademark notices and this permission notice shall be +included in all copies of one or more of the Font Software typefaces. + +The Font Software may be modified, altered, or added to, and in particular the +designs of glyphs or characters in the Fonts may be modified and additional +glyphs or characters may be added to the Fonts, only if the fonts are renamed +to names not containing either the words "Bitstream" or the word "Vera". + +This License becomes null and void to the extent applicable to Fonts or Font +Software that has been modified and is distributed under the "Bitstream Vera" +names. + +The Font Software may be sold as part of a larger software package but no copy +of one or more of the Font Software typefaces may be sold by itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, +SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO +USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome Foundation, +and Bitstream Inc., shall not be used in advertising or otherwise to promote +the sale, use or other dealings in this Font Software without prior written +authorization from the Gnome Foundation or Bitstream Inc., respectively. For +further information, contact: fonts at gnome dot org. 3.7. Bigelow & Holmes +Inc and URW++ GmbH Luxi font license + +Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font instruction +code copyright (c) 2001 by URW++ GmbH. All Rights Reserved. Luxi is a +registered trademark of Bigelow & Holmes Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of these Fonts and associated documentation files (the "Font Software"), to +deal in the Font Software, including without limitation the rights to use, +copy, merge, publish, distribute, sublicense, and/or sell copies of the Font +Software, and to permit persons to whom the Font Software is furnished to do +so, subject to the following conditions: + +The above copyright and trademark notices and this permission notice shall be +included in all copies of one or more of the Font Software. + +The Font Software may not be modified, altered, or added to, and in particular +the designs of glyphs or characters in the Fonts may not be modified nor may +additional glyphs or characters be added to the Fonts. This License becomes +null and void when the Fonts or Font Software have been modified. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW & HOLMES INC. OR URW++ +GMBH. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY +GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR +INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT +SOFTWARE. + +Except as contained in this notice, the names of Bigelow & Holmes Inc. and +URW++ GmbH. shall not be used in advertising or otherwise to promote the sale, +use or other dealings in this Font Software without prior written +authorization from Bigelow & Holmes Inc. and URW++ GmbH. + +For further information, contact: + +info@urwpp.de or design@bigelowandholmes.com + + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to zlib v1.2.5, which may be included +with JRE 8, JDK 8, and OpenJDK 8. + +--- begin of LICENSE --- + + version 1.2.5, July 18th, 2005 + + Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +--- end of LICENSE --- + +------------------------------------------------------------------------------- + +%% This notice is provided with respect to the following which may be +included with JRE 8, JDK 8, and OpenJDK 8, except where noted: + + Apache Commons Math 2.2 + Apache Derby 10.10.1.2 [included with JDK 8] + Apache Jakarta BCEL 5.2 + Apache Jakarta Regexp 1.4 + Apache Santuario XML Security for Java 1.5.4 + Apache Xalan-Java 2.7.1 + Apache Xerces Java 2.10.0 + Apache XML Resolver 1.1 + Dynalink 0.5 + +These components are licensed under the Apache License, Version 2.0. +See /usr/share/common-licenses/Apache-2.0 + +------------------------------------------------------------------------------- + + +=============================================================================== + +JAMVM: + + Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010 + Robert Lougher <rob@jamvm.org.uk>. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2, + or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +debian/dbg8.py: +# Copyright 2016, Red Hat and individual contributors +# by the @authors tag. +# +# This is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of +# the License, or (at your option) any later version. +# +# This software is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. + +On Debian systems a full copy of the GNU General Public License, GPL, can be +found in the file /usr/share/common-licenses/GPL-2. diff --git a/debian/dbg8.py b/debian/dbg8.py new file mode 100644 index 0000000..905d5db --- /dev/null +++ b/debian/dbg8.py @@ -0,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 --git a/debian/excludelist.jdk.jtx b/debian/excludelist.jdk.jtx new file mode 100644 index 0000000..b447e78 --- /dev/null +++ b/debian/excludelist.jdk.jtx @@ -0,0 +1,205 @@ +# Fail to compile +javax/imageio/metadata/DOML3Node.java +javax/swing/border/Test4856008.java + +# Failed due to java.lang.UnsatisfiedLinkError: sun.java2d.opengl.OGLContext.getOGLIdString()Ljava/lang/String +java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java +sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java +sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java +sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java +sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java +sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java +sun/java2d/OpenGL/GradientPaints.java +sun/java2d/pipe/MutableColorTest/MutableColorTest.java +sun/java2d/SunGraphics2D/DrawImageBilinear.java +sun/java2d/SunGraphics2D/PolyVertTest.java +sun/java2d/SunGraphics2D/SimplePrimQuality.java + +# Failed due to connection refused +#sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java + +# Failed due to network unreachable +#java/net/ipv6tests/TcpTest.java + +# Failed due to java.security.ProviderException: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_DEVICE_ERROR +sun/security/pkcs11/KeyAgreement/TestDH.java + +# Failed with exit code 1 +sun/nio/cs/Test4200310.sh +sun/tools/jrunscript/jrunscriptTest.sh + +# Unexpected exit from test [exit code: 0] +java/awt/Graphics/DrawImageBG/SystemBgColorTest.java +javax/swing/JInternalFrame/6725409/bug6725409.java + +# Test error +java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html + +# Access denied (java.awt.AWTPermission createRobot) +java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.html + +# java.lang.RuntimeException: Test failed. +java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html +java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html + +# java.lang.RuntimeException: The test was not completed +java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html + +# java.lang.AssertionError: Some tests failed +tools/launcher/VersionCheck.java + +# `main' threw exception: java.lang.ClassNotFoundException: javax/crypto/SunJCE_c +java/lang/reflect/Generics/Probe.java + +# `main' threw exception: java.lang.Exception: Factory.createProvider: Should error with non-void probes +com/sun/tracing/BasicFunctionality.java + +# `main' threw exception: java.lang.Exception: Test failed: jdwp doesn't like -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n,timeout=0,mutf8=y,quiet=y,stdalloc=y,strict=n +com/sun/jdi/OptionTest.java + +# `main' threw exception: java.lang.RuntimeException: Date/Number formatting/parsing error. +java/text/Format/DateFormat/Bug4823811.java + +# java.lang.RuntimeException: Outline was not detected +java/awt/font/Rotate/TranslatedOutlineTest.java + +# java.lang.RuntimeException: Ratio of blue to red is too great: 0.13329928498467825 +java/awt/Graphics2D/DrawString/RotTransText.java + +# java.lang.RuntimeException: Step 1: Error: can't bring a focus on Frame by clicking on it +java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java + +# java.lang.RuntimeException: Test failed - exec got IO exception +sun/tools/jhat/HatHeapDump1Test.java + +# java.lang.RuntimeException: Native2ascii could not be written. broken. +# native2ascii can write to source dir. Test should ensure location is unwritable. +sun/tools/native2ascii/NativeErrors.java + +# java.lang.RuntimeException: Test failed at 0-0 rgb=0xffb7c7d5 +sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java + +# java.lang.RuntimeException: TestFAILED: some of the testcases are failed +java/awt/xembed/server/RunTestXEmbed.java + +# java.lang.RuntimeException: initCause of Exception not thrown +java/awt/print/PrinterJob/ExceptionTest.java + +# `main' threw exception: java.lang.RuntimeException: java.lang.RuntimeException: Invalid result of the ColorConvertOp for ColorSpace:CS_LINEAR_RGB Data type:TYPE_BYTE. Golden image:BufferedImage@7b2be1bd: type = 5 ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@7df17e77 transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 256 height = 256 #numDataElements 3 dataOff[0] = 2 +sun/java2d/cmm/ColorConvertOp/ColConvCCMTest.java + +# `main' threw exception: java.lang.RuntimeException: java.lang.RuntimeException: Invalid result of the ColorConvertOp for ColorSpace:CS_LINEAR_RGB Image type:TYPE_INT_ARGB. Golden image:LRGB.png +sun/java2d/cmm/ColorConvertOp/ColConvDCMTest.java +sun/java2d/cmm/ColorConvertOp/MTColConvTest.java + +# java.lang.StackOverflowError +java/beans/XMLEncoder/javax_swing_tree_TreePath.java + +# sun.awt.SunToolkit$OperationTimedOut +java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html +java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java +java/awt/Component/F10TopToplevel/F10TopToplevel.html +java/awt/Component/isLightweightCrash/StubPeerCrash.java +java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java +java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java +java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java +java/awt/dnd/Button2DragTest/Button2DragTest.html +java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html +java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java +java/awt/event/KeyEvent/CorrectTime/CorrectTime.java +java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java +java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html +java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html +java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java +java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java +java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html +java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html +java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java +java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java +java/awt/EventQueue/6638195/bug6638195.java +java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html +java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java +java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java +java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java +java/awt/Focus/ChoiceFocus/ChoiceFocus.java +java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java +java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java +java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java +java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html +java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java +java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java +java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java +java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java +java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html +java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java +java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java +java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java +java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java +java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java +java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java +java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html +java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java +java/awt/Focus/TypeAhead/TestFocusFreeze.java +java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html +java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java +java/awt/Frame/DynamicLayout/DynamicLayout.java +java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java +java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java +java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java +java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java +java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java +java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java +java/awt/Insets/CombinedTestApp1.java +java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html +java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html +java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html +java/awt/List/ActionAfterRemove/ActionAfterRemove.java +java/awt/List/SetBackgroundTest/SetBackgroundTest.java +java/awt/List/SingleModeDeselect/SingleModeDeselect.java +java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java +java/awt/Mixing/LWPopupMenu.java +java/awt/Mixing/MixingOnDialog.java +java/awt/Mixing/OpaqueTest.java +java/awt/Mixing/OverlappingButtons.java +java/awt/Mixing/Validating.java +java/awt/Mixing/ValidBounds.java +java/awt/Modal/LWModalTest/LWModalTest.java +java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java +java/awt/Modal/NpeOnClose/NpeOnCloseTest.java +java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html +java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html +java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java +java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java +java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html +java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.html +java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java +java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java +java/awt/Window/GrabSequence/GrabSequence.java +javax/swing/border/Test4856008.java +javax/swing/JColorChooser/Test6541987.java +javax/swing/JComboBox/6607130/bug6607130.java +javax/swing/JInternalFrame/6647340/bug6647340.java +javax/swing/JPopupMenu/6691503/bug6691503.java + +# Errors +# Invalid key: cte_test +closed/com/sun/org/apache/xml/internal/utils/Test.java +# Can't find source file: DisplayModeChanger.java +java/awt/FullScreen/UninitializedDisplayModeChangeTest/UninitializedDisplayModeChangeTest.java +# java interrupted! (timed out?) +java/awt/PrintJob/EdgeTest/EdgeTest.java +java/awt/PrintJob/MultipleEnd/MultipleEnd.java +sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java +# java.lang.IllegalAccessException: Class com.sun.javatest.regtest.MainWrapper$MainThread can not access a member of class NotBound with modifiers "public static" +java/nio/channels/DatagramChannel/NotBound.java + +# Something fishy going on here... +java/awt/FontClass/CreateFont/fileaccess/FontFile.java +java/awt/FontClass/CreateFont/DeleteFont.sh +java/awt/FontClass/CreateFont/bigfont.html + +# This test cannot be compiled because it's base class +# LocaleTestFmwk is deleted during the "liberation" phase +# of build process (this class has questionable licence). +java/util/Locale/LocaleEnhanceTest.java + diff --git a/debian/excludelist.langtools.jtx b/debian/excludelist.langtools.jtx new file mode 100644 index 0000000..57fb5b4 --- /dev/null +++ b/debian/excludelist.langtools.jtx @@ -0,0 +1,29 @@ +# Compilation passed unexpectedly +tools/javac/annotations/6359949/T6359949a.java +tools/javac/annotations/neg/OverrideNo.java +tools/javac/OverrideChecks/Private.java + +# java.lang.AssertionError: T6392782$CountNodes: expected: 384 found: 372 +tools/javac/api/T6392782.java + +# Output does not match reference file: T6384542.out, line 7 +tools/javac/enum/6384542/T6384542.java + +# An exception has occurred in the compiler (1.7.0_0-internal) +#java.lang.AssertionError: T? +# at com.sun.tools.javac.code.Types.containedBy(Types.java:719) +# at com.sun.tools.javac.code.Types$8.visitWildcardType(Types.java:819) +# at com.sun.tools.javac.code.Types$8.visitWildcardType(Types.java:771) +tools/javac/generics/wildcards/6651719/T6651719b.java + +# exit code 1 +tools/javac/Paths/Diagnostics.sh + +# `main' threw exception: java.lang.Exception: 1 errors found +tools/javac/VersionOpt.java + +# `main' threw exception: java.lang.Error: 40/211 test cases passed +tools/javap/ListTest.java + +# `main' threw exception: java.lang.Error: 64/256 test cases passed +tools/javap/OptionTest.java diff --git a/debian/font.properties.ja b/debian/font.properties.ja new file mode 100644 index 0000000..9191671 --- /dev/null +++ b/debian/font.properties.ja @@ -0,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 --git a/debian/font.properties.ja.wgy_zenhai b/debian/font.properties.ja.wgy_zenhai new file mode 100644 index 0000000..119822d --- /dev/null +++ b/debian/font.properties.ja.wgy_zenhai @@ -0,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 --git a/debian/generate-debian-orig.sh b/debian/generate-debian-orig.sh new file mode 100644 index 0000000..9ee8ac3 --- /dev/null +++ b/debian/generate-debian-orig.sh @@ -0,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 --git a/debian/generate-dfsg-zip.sh b/debian/generate-dfsg-zip.sh new file mode 100644 index 0000000..200be94 --- /dev/null +++ b/debian/generate-dfsg-zip.sh @@ -0,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 --git a/debian/jvm.cfg-default b/debian/jvm.cfg-default new file mode 100644 index 0000000..d886ba8 --- /dev/null +++ b/debian/jvm.cfg-default @@ -0,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 --git a/debian/mauve_tests b/debian/mauve_tests new file mode 100644 index 0000000..edba589 --- /dev/null +++ b/debian/mauve_tests @@ -0,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 --git a/debian/nss.cfg b/debian/nss.cfg new file mode 100644 index 0000000..3535a40 --- /dev/null +++ b/debian/nss.cfg @@ -0,0 +1,4 @@ +name = NSS +nssDbMode = noDb +attributes = compatibility +handleStartupErrors = ignoreMultipleInitialisation diff --git a/debian/openjdk-8-jre-jamvm.overrides b/debian/openjdk-8-jre-jamvm.overrides new file mode 100644 index 0000000..01c4b2c --- /dev/null +++ b/debian/openjdk-8-jre-jamvm.overrides @@ -0,0 +1,7 @@ +# It seems to be acceptable to use rpath for private libraries like the +# jdk is doing it. Check http://wiki.debian.org/RpathIssue for more +# information. +openjdk-8-jre-jamvm binary: shlib-with-executable-stack + +# Strip libjvm.so with --strip-debug instead of --strip-unneeded. LP: #574997. +openjdk-8-jre-jamvm binary: unstripped-binary-or-object diff --git a/debian/openjdk-8-jre-jamvm/usr/share/lintian/overrides/openjdk-8-jre-jamvm b/debian/openjdk-8-jre-jamvm/usr/share/lintian/overrides/openjdk-8-jre-jamvm new file mode 100644 index 0000000..01c4b2c --- /dev/null +++ b/debian/openjdk-8-jre-jamvm/usr/share/lintian/overrides/openjdk-8-jre-jamvm @@ -0,0 +1,7 @@ +# It seems to be acceptable to use rpath for private libraries like the +# jdk is doing it. Check http://wiki.debian.org/RpathIssue for more +# information. +openjdk-8-jre-jamvm binary: shlib-with-executable-stack + +# Strip libjvm.so with --strip-debug instead of --strip-unneeded. LP: #574997. +openjdk-8-jre-jamvm binary: unstripped-binary-or-object diff --git a/debian/patches/8141491.diff b/debian/patches/8141491.diff new file mode 100644 index 0000000..6370c7c --- /dev/null +++ b/debian/patches/8141491.diff @@ -0,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 +@@ -67,16 +67,38 @@ + #define SWAPLONG(x) ((jlong)(((jlong)SWAPINT((jint)(x)) << 32) | \ + ((jlong)SWAPINT((jint)((x) >> 32)) & 0xffffffff))) + ++/* The destination buffer passed to Java_java_nio_Bits_copyFromShor<type>tArray ++ * function and the source buffer passed to Java_java_nio_Bits_copyTo<type>Array ++ * may not be aligned on <type>'s boundary. Inform the compiler about this via ++ * 'unaligned' attribute, provided it supports this attribute. For recent ++ * compilers, use __has_attribute preprocessor predicate; if it is not available, ++ * we know that GCC supports it. ++ */ ++#ifndef __has_attribute ++#define __has_attribute(x) 0 ++#endif ++ ++#if defined(__GNUC__) || __has_attribute(aligned) ++typedef jshort __attribute__((aligned(1))) jshort_unaligned; ++typedef jint __attribute__((aligned(1))) jint_unaligned; ++typedef jlong __attribute__((aligned(1))) jlong_unaligned; ++#else ++typedef jshort jshort_unaligned; ++typedef jint jint_unaligned; ++typedef jlong jlong_unaligned; ++#endif ++ + JNIEXPORT void JNICALL + Java_java_nio_Bits_copyFromShortArray(JNIEnv *env, jobject this, jobject src, + jlong srcPos, jlong dstAddr, jlong length) + { + jbyte *bytes; + size_t size; +- jshort *srcShort, *dstShort, *endShort; ++ jshort *srcShort, *endShort; ++ jshort_unaligned *dstShort; + jshort tmpShort; + +- dstShort = (jshort *)jlong_to_ptr(dstAddr); ++ dstShort = (jshort_unaligned *)jlong_to_ptr(dstAddr); + + while (length > 0) { + /* do not change this if-else statement, see WARNING above */ +@@ -108,10 +130,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 */ +@@ -143,10 +166,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 */ +@@ -178,10 +202,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 */ +@@ -213,10 +238,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 */ +@@ -248,10 +274,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 --git a/debian/patches/8164293.diff b/debian/patches/8164293.diff new file mode 100644 index 0000000..3f995fb --- /dev/null +++ b/debian/patches/8164293.diff @@ -0,0 +1,49 @@ + +# HG changeset patch +# User jcm +# Date 1484137609 28800 +# Node ID 8dfbb002197a8e9dfa2881d33ec282fd7a449c25 +# Parent c7140a91e56a846a9691f81c744fd26609de093c +8164293: HotSpot leaking memory in long-running requests +Summary: Applied RMs in sweep_code_cache and related codes. +Reviewed-by: kvn, thartmann + +diff -r c7140a91e56a -r 8dfbb002197a src/share/vm/code/nmethod.cpp +--- a/hotspot/src/share/vm/code/nmethod.cpp Thu Jan 05 18:55:20 2017 -0500 ++++ b/hotspot/src/share/vm/code/nmethod.cpp Wed Jan 11 04:26:49 2017 -0800 +@@ -1151,6 +1151,7 @@ + // Clear ICStubs of all compiled ICs + void nmethod::clear_ic_stubs() { + assert_locked_or_safepoint(CompiledIC_lock); ++ ResourceMark rm; + RelocIterator iter(this); + while(iter.next()) { + if (iter.type() == relocInfo::virtual_call_type) { +diff -r c7140a91e56a -r 8dfbb002197a src/share/vm/runtime/sweeper.cpp +--- a/hotspot/src/share/vm/runtime/sweeper.cpp Thu Jan 05 18:55:20 2017 -0500 ++++ b/hotspot/src/share/vm/runtime/sweeper.cpp Wed Jan 11 04:26:49 2017 -0800 +@@ -319,6 +319,7 @@ + } + + void NMethodSweeper::sweep_code_cache() { ++ ResourceMark rm; + Ticks sweep_start_counter = Ticks::now(); + + _flushed_count = 0; +@@ -626,6 +627,7 @@ + // state of the code cache if it's requested. + void NMethodSweeper::log_sweep(const char* msg, const char* format, ...) { + if (PrintMethodFlushing) { ++ ResourceMark rm; + stringStream s; + // Dump code cache state into a buffer before locking the tty, + // because log_state() will use locks causing lock conflicts. +@@ -643,6 +645,7 @@ + } + + if (LogCompilation && (xtty != NULL)) { ++ ResourceMark rm; + stringStream s; + // Dump code cache state into a buffer before locking the tty, + // because log_state() will use locks causing lock conflicts. + diff --git a/debian/patches/aarch64.diff b/debian/patches/aarch64.diff new file mode 100644 index 0000000..a7848b2 --- /dev/null +++ b/debian/patches/aarch64.diff @@ -0,0 +1,202 @@ +# 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/common/autoconf/generated-configure.sh ++++ b/common/autoconf/generated-configure.sh +@@ -6868,6 +6868,12 @@ test -n "$target_alias" && + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=little + ;; ++ aarch64) ++ VAR_CPU=aarch64 ++ VAR_CPU_ARCH=aarch64 ++ VAR_CPU_BITS=64 ++ VAR_CPU_ENDIAN=little ++ ;; + powerpc) + VAR_CPU=ppc + VAR_CPU_ARCH=ppc +@@ -7005,6 +7011,12 @@ $as_echo "$OPENJDK_BUILD_OS-$OPENJDK_BUI + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=little + ;; ++ aarch64) ++ VAR_CPU=aarch64 ++ VAR_CPU_ARCH=aarch64 ++ VAR_CPU_BITS=64 ++ VAR_CPU_ENDIAN=little ++ ;; + powerpc) + VAR_CPU=ppc + VAR_CPU_ARCH=ppc +@@ -7975,11 +7987,6 @@ $as_echo "$with_jvm_variants" >&6; } + JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'` + JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'` + +- if test "x$JVM_VARIANT_CLIENT" = xtrue; then +- if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then +- as_fn_error $? "You cannot build a client JVM for a 64-bit machine." "$LINENO" 5 +- fi +- fi + if test "x$JVM_VARIANT_KERNEL" = xtrue; then + if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then + as_fn_error $? "You cannot build a kernel JVM for a 64-bit machine." "$LINENO" 5 +@@ -29731,7 +29738,7 @@ fi + # + case $COMPILER_NAME in + gcc ) +- COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \ ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-unused-parameter -Wno-parentheses \ + -pipe \ + -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" + CXXSTD_CXXFLAG="-std=gnu++98" +@@ -30235,6 +30242,9 @@ $as_echo "$supports" >&6; } + s390) + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31" + ;; ++ aarch64) ++ ZERO_ARCHFLAG="" ++ ;; + *) + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + esac +--- a/common/autoconf/jdk-options.m4 ++++ b/common/autoconf/jdk-options.m4 +@@ -164,6 +164,9 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS + if test "x$OPENJDK_TARGET_CPU" = xaarch64; 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 +--- a/common/autoconf/platform.m4 ++++ b/common/autoconf/platform.m4 +@@ -54,6 +54,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=little + ;; ++ aarch64) ++ VAR_CPU=aarch64 ++ VAR_CPU_ARCH=aarch64 ++ VAR_CPU_BITS=64 ++ VAR_CPU_ENDIAN=little ++ ;; + powerpc) + VAR_CPU=ppc + VAR_CPU_ARCH=ppc +--- a/common/autoconf/toolchain.m4 ++++ b/common/autoconf/toolchain.m4 +@@ -1018,7 +1018,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_ + # + case $COMPILER_NAME in + gcc ) +- COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \ ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-unused-parameter -Wno-parentheses \ + -pipe \ + -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" + CXXSTD_CXXFLAG="-std=gnu++98" +@@ -1346,6 +1346,9 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_ + s390) + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31" + ;; ++ aarch64) ++ ZERO_ARCHFLAG="" ++ ;; + *) + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + esac +--- 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 +@@ -139,6 +139,10 @@ else + ifeq ($(OPENJDK_TARGET_CPU), ppc64) + LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64 + 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 +@@ -43,6 +43,7 @@ + #define X_ZERO 6 + #define X_ARM 7 + #define X_PPC 8 ++#define X_AARCH64 9 + + // ********************************** + // Make sure you set X_PLATFORM and X_ARCH defines correctly. +--- /dev/null ++++ b/jdk/src/solaris/bin/aarch64/jvm.cfg +@@ -0,0 +1,38 @@ ++# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. ++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++# ++# This code is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License version 2 only, as ++# published by the Free Software Foundation. Oracle designates this ++# particular file as subject to the "Classpath" exception as provided ++# by Oracle in the LICENSE file that accompanied this code. ++# ++# This code is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++# version 2 for more details (a copy is included in the LICENSE file that ++# accompanied this code). ++# ++# You should have received a copy of the GNU General Public License version ++# 2 along with this work; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++# ++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++# or visit www.oracle.com if you need additional information or have any ++# questions. ++# ++# List of JVMs that can be used as an option to java, javac, etc. ++# Order is important -- first in this list is the default JVM. ++# NOTE that this both this file and its format are UNSUPPORTED and ++# WILL GO AWAY in a future release. ++# ++# You may also select a JVM in an arbitrary location with the ++# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported ++# and may not be available in a future release. ++# ++# n.b. server must be first so it is used as the default ++-server KNOWN ++-minimal ERROR ++-zero KNOWN ++-shark ERROR ++-jamvm ERROR diff --git a/debian/patches/accessible-toolkit.patch b/debian/patches/accessible-toolkit.patch new file mode 100644 index 0000000..b337a9c --- /dev/null +++ b/debian/patches/accessible-toolkit.patch @@ -0,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 --git a/debian/patches/adlc-parser.patch b/debian/patches/adlc-parser.patch new file mode 100644 index 0000000..e092c03 --- /dev/null +++ b/debian/patches/adlc-parser.patch @@ -0,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 --git a/debian/patches/alpha-float-const.diff b/debian/patches/alpha-float-const.diff new file mode 100644 index 0000000..e238050 --- /dev/null +++ b/debian/patches/alpha-float-const.diff @@ -0,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 --git a/debian/patches/applet-hole.patch b/debian/patches/applet-hole.patch new file mode 100644 index 0000000..912db34 --- /dev/null +++ b/debian/patches/applet-hole.patch @@ -0,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<String,String> atts; + + /* + * JDK 1.1 serialVersionUID +@@ -70,7 +70,7 @@ class AppletViewerPanel extends AppletPa + /** + * Construct an applet viewer and start the applet. + */ +- AppletViewerPanel(URL documentURL, Hashtable atts) { ++ protected AppletViewerPanel(URL documentURL, Hashtable<String,String> atts) { + this.documentURL = documentURL; + this.atts = atts; + +@@ -106,7 +106,7 @@ class AppletViewerPanel extends AppletPa + * Get an applet parameter. + */ + public String getParameter(String name) { +- return (String)atts.get(name.toLowerCase()); ++ return atts.get(name.toLowerCase()); + } + + /** +@@ -202,12 +202,12 @@ class AppletViewerPanel extends AppletPa + return (AppletContext)getParent(); + } + +- static void debug(String s) { ++ protected static void debug(String s) { + if(debug) + System.err.println("AppletViewerPanel:::" + s); + } + +- static void debug(String s, Throwable t) { ++ protected static void debug(String s, Throwable t) { + if(debug) { + t.printStackTrace(); + debug(s); diff --git a/debian/patches/atk-wrapper-security.patch b/debian/patches/atk-wrapper-security.patch new file mode 100644 index 0000000..844feef --- /dev/null +++ b/debian/patches/atk-wrapper-security.patch @@ -0,0 +1,12 @@ +Index: b/jdk/src/share/lib/security/java.security-linux +=================================================================== +--- 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 --git a/debian/patches/autoconf-select.diff b/debian/patches/autoconf-select.diff new file mode 100644 index 0000000..1d650eb --- /dev/null +++ b/debian/patches/autoconf-select.diff @@ -0,0 +1,12 @@ +--- a/common/autoconf/autogen.sh ++++ b/common/autoconf/autogen.sh +@@ -43,7 +43,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 + + echo "Autoconf found: ${AUTOCONF}" + diff --git a/debian/patches/autoconf-updates.diff b/debian/patches/autoconf-updates.diff new file mode 100644 index 0000000..3e176ba --- /dev/null +++ b/debian/patches/autoconf-updates.diff @@ -0,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 <http://www.gnu.org/licenses/>. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that ++# program. This Exception is an additional permission under section 7 ++# of the GNU General Public License, version 3 ("GPLv3"). ++# ++# Originally written by Per Bothner. ++# ++# You can get the latest version of this script from: ++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD ++# ++# Please send patches with a ChangeLog entry to config-patches@gnu.org. + +-# Test and fix solaris on sparcv9 +-echo $OUT | grep sparc-sun-solaris > /dev/null 2> /dev/null +-if test $? = 0; then +- # isainfo -n returns either sparc or sparcv9 +- REAL_CPU=`isainfo -n` +- OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'` +-fi + +-# Test and fix cygwin on x86_64 +-echo $OUT | grep 86-pc-cygwin > /dev/null 2> /dev/null +-if test $? != 0; then +- echo $OUT | grep 86-pc-mingw > /dev/null 2> /dev/null +-fi +-if test $? = 0; then +- case `echo $PROCESSOR_IDENTIFIER | cut -f1 -d' '` in +- intel64|Intel64|INTEL64|em64t|EM64T|amd64|AMD64|8664|x86_64) +- REAL_CPU=x86_64 +- OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'` +- ;; ++me=`echo "$0" | sed -e 's,.*/,,'` ++ ++usage="\ ++Usage: $0 [OPTION] ++ ++Output the configuration name of the system \`$me' is run on. ++ ++Operation modes: ++ -h, --help print this help, then exit ++ -t, --time-stamp print date of last modification, then exit ++ -v, --version print version number, then exit ++ ++Report bugs and patches to <config-patches@gnu.org>." ++ ++version="\ ++GNU config.guess ($timestamp) ++ ++Originally written by Per Bothner. ++Copyright 1992-2014 Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit ;; ++ --version | -v ) ++ echo "$version" ; exit ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" >&2 ++ exit 1 ;; ++ * ) ++ break ;; + esac +-fi ++done + +-# Test and fix architecture string on AIX +-# On AIX 'config.guess' returns 'powerpc' as architecture but 'powerpc' is +-# implicitely handled as 32-bit architecture in 'platform.m4' so we check +-# for the kernel mode rewrite it to 'powerpc64' if we'Re running in 64-bit mode. +-# The check could also be done with `/usr/sbin/prtconf | grep "Kernel Type" | grep "64-bit"` +-echo $OUT | grep powerpc-ibm-aix > /dev/null 2> /dev/null +-if test $? = 0; then +- if [ -x /bin/getconf ] ; then +- KERNEL_BITMODE=`getconf KERNEL_BITMODE` +- if [ "$KERNEL_BITMODE" = "32" ]; then +- KERNEL_BITMODE="" +- fi +- fi +- OUT=powerpc$KERNEL_BITMODE`echo $OUT | sed -e 's/[^-]*//'` ++if test $# != 0; then ++ echo "$me: too many arguments$help" >&2 ++ exit 1 + fi + +-# Test and fix little endian PowerPC64. +-# TODO: should be handled by autoconf-config.guess. +-if [ "x$OUT" = x ]; then +- if [ `uname -m` = ppc64le ]; then +- if [ `uname -s` = Linux ]; then +- OUT=powerpc64le-unknown-linux-gnu +- fi +- fi ++trap 'exit 1' 1 2 15 ++ ++# CC_FOR_BUILD -- compiler used by this script. Note that the use of a ++# compiler to aid in system detection is discouraged as it requires ++# temporary files to be created and, as you can see below, it is a ++# headache to deal with in a portable fashion. ++ ++# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still ++# use `HOST_CC' if defined, but it is deprecated. ++ ++# Portable tmp directory creation inspired by the Autoconf team. ++ ++set_cc_for_build=' ++trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; ++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; ++: ${TMPDIR=/tmp} ; ++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || ++ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || ++ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || ++ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; ++dummy=$tmp/dummy ; ++tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; ++case $CC_FOR_BUILD,$HOST_CC,$CC in ++ ,,) echo "int x;" > $dummy.c ; ++ for c in cc gcc c89 c99 ; do ++ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then ++ CC_FOR_BUILD="$c"; break ; ++ fi ; ++ done ; ++ if test x"$CC_FOR_BUILD" = x ; then ++ CC_FOR_BUILD=no_compiler_found ; ++ fi ++ ;; ++ ,,*) CC_FOR_BUILD=$CC ;; ++ ,*,*) CC_FOR_BUILD=$HOST_CC ;; ++esac ; set_cc_for_build= ;' ++ ++# This is needed to find uname on a Pyramid OSx when run in the BSD universe. ++# (ghazi@noc.rutgers.edu 1994-08-24) ++if (test -f /.attbin/uname) >/dev/null 2>&1 ; then ++ PATH=$PATH:/.attbin ; export PATH + fi + +-echo $OUT ++UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown ++UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown ++UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown ++UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown ++ ++case "${UNAME_SYSTEM}" in ++Linux|GNU|GNU/*) ++ # If the system lacks a compiler, then just pick glibc. ++ # We could probably try harder. ++ LIBC=gnu ++ ++ eval $set_cc_for_build ++ cat <<-EOF > $dummy.c ++ #include <features.h> ++ #if defined(__UCLIBC__) ++ LIBC=uclibc ++ #elif defined(__dietlibc__) ++ LIBC=dietlibc ++ #else ++ LIBC=gnu ++ #endif ++ EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ++ ;; ++esac ++ ++# Note: order is significant - the case branches are not exclusive. ++ ++case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ++ *:NetBSD:*:*) ++ # NetBSD (nbsd) targets should (where applicable) match one or ++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently ++ # switched to ELF, *-*-netbsd* would select the old ++ # object file format. This provides both forward ++ # compatibility and a consistent mechanism for selecting the ++ # object file format. ++ # ++ # Note: NetBSD doesn't particularly care about the vendor ++ # portion of the name. We always set it to "unknown". ++ sysctl="sysctl -n hw.machine_arch" ++ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ ++ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` ++ case "${UNAME_MACHINE_ARCH}" in ++ armeb) machine=armeb-unknown ;; ++ arm*) machine=arm-unknown ;; ++ sh3el) machine=shl-unknown ;; ++ sh3eb) machine=sh-unknown ;; ++ sh5el) machine=sh5le-unknown ;; ++ *) machine=${UNAME_MACHINE_ARCH}-unknown ;; ++ esac ++ # The Operating System including object format, if it has switched ++ # to ELF recently, or will in the future. ++ case "${UNAME_MACHINE_ARCH}" in ++ arm*|i386|m68k|ns32k|sh3*|sparc|vax) ++ eval $set_cc_for_build ++ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ELF__ ++ then ++ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). ++ # Return netbsd for either. FIX? ++ os=netbsd ++ else ++ os=netbsdelf ++ fi ++ ;; ++ *) ++ os=netbsd ++ ;; ++ esac ++ # The OS release ++ # Debian GNU/NetBSD machines have a different userland, and ++ # thus, need a distinct triplet. However, they do not need ++ # kernel version information, so it can be replaced with a ++ # suitable tag, in the style of linux-gnu. ++ case "${UNAME_VERSION}" in ++ Debian*) ++ release='-gnu' ++ ;; ++ *) ++ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ++ ;; ++ esac ++ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: ++ # contains redundant information, the shorter form: ++ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. ++ echo "${machine}-${os}${release}" ++ exit ;; ++ *:Bitrig:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} ++ exit ;; ++ *:OpenBSD:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} ++ exit ;; ++ *:ekkoBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} ++ exit ;; ++ *:SolidBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} ++ exit ;; ++ macppc:MirBSD:*:*) ++ echo powerpc-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; ++ *:MirBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; ++ alpha:OSF1:*:*) ++ case $UNAME_RELEASE in ++ *4.0) ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ++ ;; ++ *5.*) ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ++ ;; ++ esac ++ # According to Compaq, /usr/sbin/psrinfo has been available on ++ # OSF/1 and Tru64 systems produced since 1995. I hope that ++ # covers most systems running today. This code pipes the CPU ++ # types through head -n 1, so we only detect the type of CPU 0. ++ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` ++ case "$ALPHA_CPU_TYPE" in ++ "EV4 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "EV4.5 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "LCA4 (21066/21068)") ++ UNAME_MACHINE="alpha" ;; ++ "EV5 (21164)") ++ UNAME_MACHINE="alphaev5" ;; ++ "EV5.6 (21164A)") ++ UNAME_MACHINE="alphaev56" ;; ++ "EV5.6 (21164PC)") ++ UNAME_MACHINE="alphapca56" ;; ++ "EV5.7 (21164PC)") ++ UNAME_MACHINE="alphapca57" ;; ++ "EV6 (21264)") ++ UNAME_MACHINE="alphaev6" ;; ++ "EV6.7 (21264A)") ++ UNAME_MACHINE="alphaev67" ;; ++ "EV6.8CB (21264C)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8AL (21264B)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8CX (21264D)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.9A (21264/EV69A)") ++ UNAME_MACHINE="alphaev69" ;; ++ "EV7 (21364)") ++ UNAME_MACHINE="alphaev7" ;; ++ "EV7.9 (21364A)") ++ UNAME_MACHINE="alphaev79" ;; ++ esac ++ # A Pn.n version is a patched version. ++ # A Vn.n version is a released version. ++ # A Tn.n version is a released field test version. ++ # A Xn.n version is an unreleased experimental baselevel. ++ # 1.2 uses "1.2" for uname -r. ++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. ++ exitcode=$? ++ trap '' 0 ++ exit $exitcode ;; ++ Alpha\ *:Windows_NT*:*) ++ # How do we know it's Interix rather than the generic POSIX subsystem? ++ # Should we change UNAME_MACHINE based on the output of uname instead ++ # of the specific Alpha model? ++ echo alpha-pc-interix ++ exit ;; ++ 21064:Windows_NT:50:3) ++ echo alpha-dec-winnt3.5 ++ exit ;; ++ Amiga*:UNIX_System_V:4.0:*) ++ echo m68k-unknown-sysv4 ++ exit ;; ++ *:[Aa]miga[Oo][Ss]:*:*) ++ echo ${UNAME_MACHINE}-unknown-amigaos ++ exit ;; ++ *:[Mm]orph[Oo][Ss]:*:*) ++ echo ${UNAME_MACHINE}-unknown-morphos ++ exit ;; ++ *:OS/390:*:*) ++ echo i370-ibm-openedition ++ exit ;; ++ *:z/VM:*:*) ++ echo s390-ibm-zvmoe ++ exit ;; ++ *:OS400:*:*) ++ echo powerpc-ibm-os400 ++ exit ;; ++ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) ++ echo arm-acorn-riscix${UNAME_RELEASE} ++ exit ;; ++ arm*:riscos:*:*|arm*:RISCOS:*:*) ++ echo arm-unknown-riscos ++ exit ;; ++ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) ++ echo hppa1.1-hitachi-hiuxmpp ++ exit ;; ++ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) ++ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. ++ if test "`(/bin/universe) 2>/dev/null`" = att ; then ++ echo pyramid-pyramid-sysv3 ++ else ++ echo pyramid-pyramid-bsd ++ fi ++ exit ;; ++ NILE*:*:*:dcosx) ++ echo pyramid-pyramid-svr4 ++ exit ;; ++ DRS?6000:unix:4.0:6*) ++ echo sparc-icl-nx6 ++ exit ;; ++ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) ++ case `/usr/bin/uname -p` in ++ sparc) echo sparc-icl-nx7; exit ;; ++ esac ;; ++ s390x:SunOS:*:*) ++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4H:SunOS:5.*:*) ++ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) ++ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) ++ echo i386-pc-auroraux${UNAME_RELEASE} ++ exit ;; ++ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) ++ eval $set_cc_for_build ++ SUN_ARCH="i386" ++ # If there is a compiler, see if it is configured for 64-bit objects. ++ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. ++ # This test works for both compilers. ++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ SUN_ARCH="x86_64" ++ fi ++ fi ++ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:6*:*) ++ # According to config.sub, this is the proper way to canonicalize ++ # SunOS6. Hard to guess exactly what SunOS6 will be like, but ++ # it's likely to be more like Solaris than SunOS4. ++ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:*:*) ++ case "`/usr/bin/arch -k`" in ++ Series*|S4*) ++ UNAME_RELEASE=`uname -v` ++ ;; ++ esac ++ # Japanese Language versions have a version number like `4.1.3-JL'. ++ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` ++ exit ;; ++ sun3*:SunOS:*:*) ++ echo m68k-sun-sunos${UNAME_RELEASE} ++ exit ;; ++ sun*:*:4.2BSD:*) ++ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` ++ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 ++ case "`/bin/arch`" in ++ sun3) ++ echo m68k-sun-sunos${UNAME_RELEASE} ++ ;; ++ sun4) ++ echo sparc-sun-sunos${UNAME_RELEASE} ++ ;; ++ esac ++ exit ;; ++ aushp:SunOS:*:*) ++ echo sparc-auspex-sunos${UNAME_RELEASE} ++ exit ;; ++ # The situation for MiNT is a little confusing. The machine name ++ # can be virtually everything (everything which is not ++ # "atarist" or "atariste" at least should have a processor ++ # > m68000). The system name ranges from "MiNT" over "FreeMiNT" ++ # to the lowercase version "mint" (or "freemint"). Finally ++ # the system name "TOS" denotes a system which is actually not ++ # MiNT. But MiNT is downward compatible to TOS, so this should ++ # be no problem. ++ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit ;; ++ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit ;; ++ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit ;; ++ m68k:machten:*:*) ++ echo m68k-apple-machten${UNAME_RELEASE} ++ exit ;; ++ powerpc:machten:*:*) ++ echo powerpc-apple-machten${UNAME_RELEASE} ++ exit ;; ++ RISC*:Mach:*:*) ++ echo mips-dec-mach_bsd4.3 ++ exit ;; ++ RISC*:ULTRIX:*:*) ++ echo mips-dec-ultrix${UNAME_RELEASE} ++ exit ;; ++ VAX*:ULTRIX*:*:*) ++ echo vax-dec-ultrix${UNAME_RELEASE} ++ exit ;; ++ 2020:CLIX:*:* | 2430:CLIX:*:*) ++ echo clipper-intergraph-clix${UNAME_RELEASE} ++ exit ;; ++ mips:*:*:UMIPS | mips:*:*:RISCos) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++#ifdef __cplusplus ++#include <stdio.h> /* for printf() prototype */ ++ int main (int argc, char *argv[]) { ++#else ++ int main (argc, argv) int argc; char *argv[]; { ++#endif ++ #if defined (host_mips) && defined (MIPSEB) ++ #if defined (SYSTYPE_SYSV) ++ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); ++ #endif ++ #if defined (SYSTYPE_SVR4) ++ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); ++ #endif ++ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) ++ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); ++ #endif ++ #endif ++ exit (-1); ++ } ++EOF ++ $CC_FOR_BUILD -o $dummy $dummy.c && ++ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && ++ SYSTEM_NAME=`$dummy $dummyarg` && ++ { echo "$SYSTEM_NAME"; exit; } ++ echo mips-mips-riscos${UNAME_RELEASE} ++ exit ;; ++ Motorola:PowerMAX_OS:*:*) ++ echo powerpc-motorola-powermax ++ exit ;; ++ Motorola:*:4.3:PL8-*) ++ echo powerpc-harris-powermax ++ exit ;; ++ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) ++ echo powerpc-harris-powermax ++ exit ;; ++ Night_Hawk:Power_UNIX:*:*) ++ echo powerpc-harris-powerunix ++ exit ;; ++ m88k:CX/UX:7*:*) ++ echo m88k-harris-cxux7 ++ exit ;; ++ m88k:*:4*:R4*) ++ echo m88k-motorola-sysv4 ++ exit ;; ++ m88k:*:3*:R3*) ++ echo m88k-motorola-sysv3 ++ exit ;; ++ AViiON:dgux:*:*) ++ # DG/UX returns AViiON for all architectures ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] ++ then ++ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ ++ [ ${TARGET_BINARY_INTERFACE}x = x ] ++ then ++ echo m88k-dg-dgux${UNAME_RELEASE} ++ else ++ echo m88k-dg-dguxbcs${UNAME_RELEASE} ++ fi ++ else ++ echo i586-dg-dgux${UNAME_RELEASE} ++ fi ++ exit ;; ++ M88*:DolphinOS:*:*) # DolphinOS (SVR3) ++ echo m88k-dolphin-sysv3 ++ exit ;; ++ M88*:*:R3*:*) ++ # Delta 88k system running SVR3 ++ echo m88k-motorola-sysv3 ++ exit ;; ++ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) ++ echo m88k-tektronix-sysv3 ++ exit ;; ++ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) ++ echo m68k-tektronix-bsd ++ exit ;; ++ *:IRIX*:*:*) ++ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` ++ exit ;; ++ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. ++ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id ++ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' ++ i*86:AIX:*:*) ++ echo i386-ibm-aix ++ exit ;; ++ ia64:AIX:*:*) ++ if [ -x /usr/bin/oslevel ] ; then ++ IBM_REV=`/usr/bin/oslevel` ++ else ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} ++ fi ++ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} ++ exit ;; ++ *:AIX:2:3) ++ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include <sys/systemcfg.h> ++ ++ main() ++ { ++ if (!__power_pc()) ++ exit(1); ++ puts("powerpc-ibm-aix3.2.5"); ++ exit(0); ++ } ++EOF ++ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` ++ then ++ echo "$SYSTEM_NAME" ++ else ++ echo rs6000-ibm-aix3.2.5 ++ fi ++ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then ++ echo rs6000-ibm-aix3.2.4 ++ else ++ echo rs6000-ibm-aix3.2 ++ fi ++ exit ;; ++ *:AIX:*:[4567]) ++ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` ++ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then ++ IBM_ARCH=rs6000 ++ else ++ IBM_ARCH=powerpc ++ fi ++ if [ -x /usr/bin/oslevel ] ; then ++ IBM_REV=`/usr/bin/oslevel` ++ else ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} ++ fi ++ echo ${IBM_ARCH}-ibm-aix${IBM_REV} ++ exit ;; ++ *:AIX:*:*) ++ echo rs6000-ibm-aix ++ exit ;; ++ ibmrt:4.4BSD:*|romp-ibm:BSD:*) ++ echo romp-ibm-bsd4.4 ++ exit ;; ++ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and ++ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to ++ exit ;; # report: romp-ibm BSD 4.3 ++ *:BOSX:*:*) ++ echo rs6000-bull-bosx ++ exit ;; ++ DPX/2?00:B.O.S.:*:*) ++ echo m68k-bull-sysv3 ++ exit ;; ++ 9000/[34]??:4.3bsd:1.*:*) ++ echo m68k-hp-bsd ++ exit ;; ++ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) ++ echo m68k-hp-bsd4.4 ++ exit ;; ++ 9000/[34678]??:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ case "${UNAME_MACHINE}" in ++ 9000/31? ) HP_ARCH=m68000 ;; ++ 9000/[34]?? ) HP_ARCH=m68k ;; ++ 9000/[678][0-9][0-9]) ++ if [ -x /usr/bin/getconf ]; then ++ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; ++ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 ++ esac ;; ++ esac ++ fi ++ if [ "${HP_ARCH}" = "" ]; then ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ ++ #define _HPUX_SOURCE ++ #include <stdlib.h> ++ #include <unistd.h> ++ ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits = sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu = sysconf (_SC_CPU_VERSION); ++ ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } ++EOF ++ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` ++ test -z "$HP_ARCH" && HP_ARCH=hppa ++ fi ;; ++ esac ++ if [ ${HP_ARCH} = "hppa2.0w" ] ++ then ++ eval $set_cc_for_build ++ ++ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating ++ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler ++ # generating 64-bit code. GNU and HP use different nomenclature: ++ # ++ # $ CC_FOR_BUILD=cc ./config.guess ++ # => hppa2.0w-hp-hpux11.23 ++ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess ++ # => hppa64-hp-hpux11.23 ++ ++ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | ++ grep -q __LP64__ ++ then ++ HP_ARCH="hppa2.0w" ++ else ++ HP_ARCH="hppa64" ++ fi ++ fi ++ echo ${HP_ARCH}-hp-hpux${HPUX_REV} ++ exit ;; ++ ia64:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ echo ia64-hp-hpux${HPUX_REV} ++ exit ;; ++ 3050*:HI-UX:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include <unistd.h> ++ int ++ main () ++ { ++ long cpu = sysconf (_SC_CPU_VERSION); ++ /* The order matters, because CPU_IS_HP_MC68K erroneously returns ++ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct ++ results, however. */ ++ if (CPU_IS_PA_RISC (cpu)) ++ { ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; ++ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; ++ default: puts ("hppa-hitachi-hiuxwe2"); break; ++ } ++ } ++ else if (CPU_IS_HP_MC68K (cpu)) ++ puts ("m68k-hitachi-hiuxwe2"); ++ else puts ("unknown-hitachi-hiuxwe2"); ++ exit (0); ++ } ++EOF ++ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } ++ echo unknown-hitachi-hiuxwe2 ++ exit ;; ++ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) ++ echo hppa1.1-hp-bsd ++ exit ;; ++ 9000/8??:4.3bsd:*:*) ++ echo hppa1.0-hp-bsd ++ exit ;; ++ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) ++ echo hppa1.0-hp-mpeix ++ exit ;; ++ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) ++ echo hppa1.1-hp-osf ++ exit ;; ++ hp8??:OSF1:*:*) ++ echo hppa1.0-hp-osf ++ exit ;; ++ i*86:OSF1:*:*) ++ if [ -x /usr/sbin/sysversion ] ; then ++ echo ${UNAME_MACHINE}-unknown-osf1mk ++ else ++ echo ${UNAME_MACHINE}-unknown-osf1 ++ fi ++ exit ;; ++ parisc*:Lites*:*:*) ++ echo hppa1.1-hp-lites ++ exit ;; ++ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) ++ echo c1-convex-bsd ++ exit ;; ++ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) ++ if getsysinfo -f scalar_acc ++ then echo c32-convex-bsd ++ else echo c2-convex-bsd ++ fi ++ exit ;; ++ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) ++ echo c34-convex-bsd ++ exit ;; ++ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) ++ echo c38-convex-bsd ++ exit ;; ++ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) ++ echo c4-convex-bsd ++ exit ;; ++ CRAY*Y-MP:*:*:*) ++ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*[A-Z]90:*:*:*) ++ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ ++ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ ++ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ ++ -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*TS:*:*:*) ++ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*T3E:*:*:*) ++ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*SV1:*:*:*) ++ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ *:UNICOS/mp:*:*) ++ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) ++ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; ++ 5000:UNIX_System_V:4.*:*) ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; ++ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) ++ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} ++ exit ;; ++ sparc*:BSD/OS:*:*) ++ echo sparc-unknown-bsdi${UNAME_RELEASE} ++ exit ;; ++ *:BSD/OS:*:*) ++ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} ++ exit ;; ++ *:FreeBSD:*:*) ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ case ${UNAME_PROCESSOR} in ++ amd64) ++ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ *) ++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ esac ++ exit ;; ++ i*:CYGWIN*:*) ++ echo ${UNAME_MACHINE}-pc-cygwin ++ exit ;; ++ *:MINGW64*:*) ++ echo ${UNAME_MACHINE}-pc-mingw64 ++ exit ;; ++ *:MINGW*:*) ++ echo ${UNAME_MACHINE}-pc-mingw32 ++ exit ;; ++ *:MSYS*:*) ++ echo ${UNAME_MACHINE}-pc-msys ++ exit ;; ++ i*:windows32*:*) ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 ++ exit ;; ++ i*:PW*:*) ++ echo ${UNAME_MACHINE}-pc-pw32 ++ exit ;; ++ *:Interix*:*) ++ case ${UNAME_MACHINE} in ++ x86) ++ echo i586-pc-interix${UNAME_RELEASE} ++ exit ;; ++ authenticamd | genuineintel | EM64T) ++ echo x86_64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ IA64) ++ echo ia64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ esac ;; ++ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) ++ echo i${UNAME_MACHINE}-pc-mks ++ exit ;; ++ 8664:Windows_NT:*) ++ echo x86_64-pc-mks ++ exit ;; ++ i*:Windows_NT*:* | Pentium*:Windows_NT*:*) ++ # How do we know it's Interix rather than the generic POSIX subsystem? ++ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we ++ # UNAME_MACHINE based on the output of uname instead of i386? ++ echo i586-pc-interix ++ exit ;; ++ i*:UWIN*:*) ++ echo ${UNAME_MACHINE}-pc-uwin ++ exit ;; ++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) ++ echo x86_64-unknown-cygwin ++ exit ;; ++ p*:CYGWIN*:*) ++ echo powerpcle-unknown-cygwin ++ exit ;; ++ prep*:SunOS:5.*:*) ++ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ *:GNU:*:*) ++ # the GNU system ++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` ++ exit ;; ++ *:GNU/*:*:*) ++ # other systems with GNU libc and userland ++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} ++ exit ;; ++ i*86:Minix:*:*) ++ echo ${UNAME_MACHINE}-pc-minix ++ exit ;; ++ aarch64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ aarch64_be:Linux:*:*) ++ UNAME_MACHINE=aarch64_be ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ alpha:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ EV5) UNAME_MACHINE=alphaev5 ;; ++ EV56) UNAME_MACHINE=alphaev56 ;; ++ PCA56) UNAME_MACHINE=alphapca56 ;; ++ PCA57) UNAME_MACHINE=alphapca56 ;; ++ EV6) UNAME_MACHINE=alphaev6 ;; ++ EV67) UNAME_MACHINE=alphaev67 ;; ++ EV68*) UNAME_MACHINE=alphaev68 ;; ++ esac ++ objdump --private-headers /bin/sh | grep -q ld.so.1 ++ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ arc:Linux:*:* | arceb:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ arm*:Linux:*:*) ++ eval $set_cc_for_build ++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_EABI__ ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ else ++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_PCS_VFP ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf ++ fi ++ fi ++ exit ;; ++ avr32*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ cris:Linux:*:*) ++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} ++ exit ;; ++ crisv32:Linux:*:*) ++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} ++ exit ;; ++ frv:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ hexagon:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ i*86:Linux:*:*) ++ echo ${UNAME_MACHINE}-pc-linux-${LIBC} ++ exit ;; ++ ia64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ m32r*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ m68*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ mips:Linux:*:* | mips64:Linux:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #undef CPU ++ #undef ${UNAME_MACHINE} ++ #undef ${UNAME_MACHINE}el ++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ++ CPU=${UNAME_MACHINE}el ++ #else ++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ++ CPU=${UNAME_MACHINE} ++ #else ++ CPU= ++ #endif ++ #endif ++EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ++ ;; ++ openrisc*:Linux:*:*) ++ echo or1k-unknown-linux-${LIBC} ++ exit ;; ++ or32:Linux:*:* | or1k*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ padre:Linux:*:*) ++ echo sparc-unknown-linux-${LIBC} ++ exit ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-${LIBC} ++ exit ;; ++ parisc:Linux:*:* | hppa:Linux:*:*) ++ # Look for CPU level ++ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in ++ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; ++ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; ++ *) echo hppa-unknown-linux-${LIBC} ;; ++ esac ++ exit ;; ++ ppc64:Linux:*:*) ++ echo powerpc64-unknown-linux-${LIBC} ++ exit ;; ++ ppc:Linux:*:*) ++ echo powerpc-unknown-linux-${LIBC} ++ exit ;; ++ ppc64le:Linux:*:*) ++ echo powerpc64le-unknown-linux-${LIBC} ++ exit ;; ++ ppcle:Linux:*:*) ++ echo powerpcle-unknown-linux-${LIBC} ++ exit ;; ++ s390:Linux:*:* | s390x:Linux:*:*) ++ echo ${UNAME_MACHINE}-ibm-linux-${LIBC} ++ exit ;; ++ sh64*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ sh*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ sparc:Linux:*:* | sparc64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ tile*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ vax:Linux:*:*) ++ echo ${UNAME_MACHINE}-dec-linux-${LIBC} ++ exit ;; ++ x86_64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ xtensa*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ i*86:DYNIX/ptx:4*:*) ++ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. ++ # earlier versions are messed up and put the nodename in both ++ # sysname and nodename. ++ echo i386-sequent-sysv4 ++ exit ;; ++ i*86:UNIX_SV:4.2MP:2.*) ++ # Unixware is an offshoot of SVR4, but it has its own version ++ # number series starting with 2... ++ # I am not positive that other SVR4 systems won't match this, ++ # I just have to hope. -- rms. ++ # Use sysv4.2uw... so that sysv4* matches it. ++ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} ++ exit ;; ++ i*86:OS/2:*:*) ++ # If we were able to find `uname', then EMX Unix compatibility ++ # is probably installed. ++ echo ${UNAME_MACHINE}-pc-os2-emx ++ exit ;; ++ i*86:XTS-300:*:STOP) ++ echo ${UNAME_MACHINE}-unknown-stop ++ exit ;; ++ i*86:atheos:*:*) ++ echo ${UNAME_MACHINE}-unknown-atheos ++ exit ;; ++ i*86:syllable:*:*) ++ echo ${UNAME_MACHINE}-pc-syllable ++ exit ;; ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) ++ echo i386-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ i*86:*DOS:*:*) ++ echo ${UNAME_MACHINE}-pc-msdosdjgpp ++ exit ;; ++ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) ++ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` ++ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then ++ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} ++ else ++ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} ++ fi ++ exit ;; ++ i*86:*:5:[678]*) ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. ++ case `/bin/uname -X | grep "^Machine"` in ++ *486*) UNAME_MACHINE=i486 ;; ++ *Pentium) UNAME_MACHINE=i586 ;; ++ *Pent*|*Celeron) UNAME_MACHINE=i686 ;; ++ esac ++ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} ++ exit ;; ++ i*86:*:3.2:*) ++ if test -f /usr/options/cb.name; then ++ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` ++ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL ++ elif /bin/uname -X 2>/dev/null >/dev/null ; then ++ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` ++ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 ++ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ ++ && UNAME_MACHINE=i586 ++ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ ++ && UNAME_MACHINE=i686 ++ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ ++ && UNAME_MACHINE=i686 ++ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL ++ else ++ echo ${UNAME_MACHINE}-pc-sysv32 ++ fi ++ exit ;; ++ pc:*:*:*) ++ # Left here for compatibility: ++ # uname -m prints for DJGPP always 'pc', but it prints nothing about ++ # the processor, so we play safe by assuming i586. ++ # Note: whatever this is, it MUST be the same as what config.sub ++ # prints for the "djgpp" host, or else GDB configury will decide that ++ # this is a cross-build. ++ echo i586-pc-msdosdjgpp ++ exit ;; ++ Intel:Mach:3*:*) ++ echo i386-pc-mach3 ++ exit ;; ++ paragon:*:*:*) ++ echo i860-intel-osf1 ++ exit ;; ++ i860:*:4.*:*) # i860-SVR4 ++ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then ++ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 ++ else # Add other i860-SVR4 vendors below as they are discovered. ++ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 ++ fi ++ exit ;; ++ mini*:CTIX:SYS*5:*) ++ # "miniframe" ++ echo m68010-convergent-sysv ++ exit ;; ++ mc68k:UNIX:SYSTEM5:3.51m) ++ echo m68k-convergent-sysv ++ exit ;; ++ M680?0:D-NIX:5.3:*) ++ echo m68k-diab-dnix ++ exit ;; ++ M68*:*:R3V[5678]*:*) ++ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; ++ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) ++ OS_REL='' ++ test -r /etc/.relid \ ++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; ++ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4; exit; } ;; ++ NCR*:*:4.2:* | MPRAS*:*:4.2:*) ++ OS_REL='.3' ++ test -r /etc/.relid \ ++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; ++ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) ++ echo m68k-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ mc68030:UNIX_System_V:4.*:*) ++ echo m68k-atari-sysv4 ++ exit ;; ++ TSUNAMI:LynxOS:2.*:*) ++ echo sparc-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ rs6000:LynxOS:2.*:*) ++ echo rs6000-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) ++ echo powerpc-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ SM[BE]S:UNIX_SV:*:*) ++ echo mips-dde-sysv${UNAME_RELEASE} ++ exit ;; ++ RM*:ReliantUNIX-*:*:*) ++ echo mips-sni-sysv4 ++ exit ;; ++ RM*:SINIX-*:*:*) ++ echo mips-sni-sysv4 ++ exit ;; ++ *:SINIX-*:*:*) ++ if uname -p 2>/dev/null >/dev/null ; then ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ echo ${UNAME_MACHINE}-sni-sysv4 ++ else ++ echo ns32k-sni-sysv ++ fi ++ exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says <Richard.M.Bartel@ccMail.Census.GOV> ++ echo i586-unisys-sysv4 ++ exit ;; ++ *:UNIX_System_V:4*:FTX*) ++ # From Gerald Hewes <hewes@openmarket.com>. ++ # How about differentiating between stratus architectures? -djm ++ echo hppa1.1-stratus-sysv4 ++ exit ;; ++ *:*:*:FTX*) ++ # From seanf@swdc.stratus.com. ++ echo i860-stratus-sysv4 ++ exit ;; ++ i*86:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo ${UNAME_MACHINE}-stratus-vos ++ exit ;; ++ *:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo hppa1.1-stratus-vos ++ exit ;; ++ mc68*:A/UX:*:*) ++ echo m68k-apple-aux${UNAME_RELEASE} ++ exit ;; ++ news*:NEWS-OS:6*:*) ++ echo mips-sony-newsos6 ++ exit ;; ++ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) ++ if [ -d /usr/nec ]; then ++ echo mips-nec-sysv${UNAME_RELEASE} ++ else ++ echo mips-unknown-sysv${UNAME_RELEASE} ++ fi ++ exit ;; ++ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. ++ echo powerpc-be-beos ++ exit ;; ++ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. ++ echo powerpc-apple-beos ++ exit ;; ++ BePC:BeOS:*:*) # BeOS running on Intel PC compatible. ++ echo i586-pc-beos ++ exit ;; ++ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. ++ echo i586-pc-haiku ++ exit ;; ++ x86_64:Haiku:*:*) ++ echo x86_64-unknown-haiku ++ exit ;; ++ SX-4:SUPER-UX:*:*) ++ echo sx4-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-5:SUPER-UX:*:*) ++ echo sx5-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-6:SUPER-UX:*:*) ++ echo sx6-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-7:SUPER-UX:*:*) ++ echo sx7-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8:SUPER-UX:*:*) ++ echo sx8-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8R:SUPER-UX:*:*) ++ echo sx8r-nec-superux${UNAME_RELEASE} ++ exit ;; ++ Power*:Rhapsody:*:*) ++ echo powerpc-apple-rhapsody${UNAME_RELEASE} ++ exit ;; ++ *:Rhapsody:*:*) ++ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} ++ exit ;; ++ *:Darwin:*:*) ++ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown ++ eval $set_cc_for_build ++ if test "$UNAME_PROCESSOR" = unknown ; then ++ UNAME_PROCESSOR=powerpc ++ fi ++ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then ++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ case $UNAME_PROCESSOR in ++ i386) UNAME_PROCESSOR=x86_64 ;; ++ powerpc) UNAME_PROCESSOR=powerpc64 ;; ++ esac ++ fi ++ fi ++ elif test "$UNAME_PROCESSOR" = i386 ; then ++ # Avoid executing cc on OS X 10.9, as it ships with a stub ++ # that puts up a graphical alert prompting to install ++ # developer tools. Any system running Mac OS X 10.7 or ++ # later (Darwin 11 and later) is required to have a 64-bit ++ # processor. This is not true of the ARM version of Darwin ++ # that Apple uses in portable devices. ++ UNAME_PROCESSOR=x86_64 ++ fi ++ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} ++ exit ;; ++ *:procnto*:*:* | *:QNX:[0123456789]*:*) ++ UNAME_PROCESSOR=`uname -p` ++ if test "$UNAME_PROCESSOR" = "x86"; then ++ UNAME_PROCESSOR=i386 ++ UNAME_MACHINE=pc ++ fi ++ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} ++ exit ;; ++ *:QNX:*:4*) ++ echo i386-pc-qnx ++ exit ;; ++ NEO-?:NONSTOP_KERNEL:*:*) ++ echo neo-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSE-*:NONSTOP_KERNEL:*:*) ++ echo nse-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSR-?:NONSTOP_KERNEL:*:*) ++ echo nsr-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ *:NonStop-UX:*:*) ++ echo mips-compaq-nonstopux ++ exit ;; ++ BS2000:POSIX*:*:*) ++ echo bs2000-siemens-sysv ++ exit ;; ++ DS/*:UNIX_System_V:*:*) ++ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} ++ exit ;; ++ *:Plan9:*:*) ++ # "uname -m" is not consistent, so use $cputype instead. 386 ++ # is converted to i386 for consistency with other x86 ++ # operating systems. ++ if test "$cputype" = "386"; then ++ UNAME_MACHINE=i386 ++ else ++ UNAME_MACHINE="$cputype" ++ fi ++ echo ${UNAME_MACHINE}-unknown-plan9 ++ exit ;; ++ *:TOPS-10:*:*) ++ echo pdp10-unknown-tops10 ++ exit ;; ++ *:TENEX:*:*) ++ echo pdp10-unknown-tenex ++ exit ;; ++ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) ++ echo pdp10-dec-tops20 ++ exit ;; ++ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) ++ echo pdp10-xkl-tops20 ++ exit ;; ++ *:TOPS-20:*:*) ++ echo pdp10-unknown-tops20 ++ exit ;; ++ *:ITS:*:*) ++ echo pdp10-unknown-its ++ exit ;; ++ SEI:*:*:SEIUX) ++ echo mips-sei-seiux${UNAME_RELEASE} ++ exit ;; ++ *:DragonFly:*:*) ++ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ++ exit ;; ++ *:*VMS:*:*) ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ case "${UNAME_MACHINE}" in ++ A*) echo alpha-dec-vms ; exit ;; ++ I*) echo ia64-dec-vms ; exit ;; ++ V*) echo vax-dec-vms ; exit ;; ++ esac ;; ++ *:XENIX:*:SysV) ++ echo i386-pc-xenix ++ exit ;; ++ i*86:skyos:*:*) ++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' ++ exit ;; ++ i*86:rdos:*:*) ++ echo ${UNAME_MACHINE}-pc-rdos ++ exit ;; ++ i*86:AROS:*:*) ++ echo ${UNAME_MACHINE}-pc-aros ++ exit ;; ++ x86_64:VMkernel:*:*) ++ echo ${UNAME_MACHINE}-unknown-esx ++ exit ;; ++esac ++ ++cat >&2 <<EOF ++$0: unable to guess system type ++ ++This script, last modified $timestamp, has failed to recognize ++the operating system you are using. It is advised that you ++download the most up to date version of the config scripts from ++ ++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD ++and ++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD ++ ++If the version you run ($0) is already up to date, please ++send the following data and any information you think might be ++pertinent to <config-patches@gnu.org> in order to provide the needed ++information to handle your system. ++ ++config.guess timestamp = $timestamp ++ ++uname -m = `(uname -m) 2>/dev/null || echo unknown` ++uname -r = `(uname -r) 2>/dev/null || echo unknown` ++uname -s = `(uname -s) 2>/dev/null || echo unknown` ++uname -v = `(uname -v) 2>/dev/null || echo unknown` ++ ++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` ++/bin/uname -X = `(/bin/uname -X) 2>/dev/null` ++ ++hostinfo = `(hostinfo) 2>/dev/null` ++/bin/universe = `(/bin/universe) 2>/dev/null` ++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` ++/bin/arch = `(/bin/arch) 2>/dev/null` ++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` ++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` ++ ++UNAME_MACHINE = ${UNAME_MACHINE} ++UNAME_RELEASE = ${UNAME_RELEASE} ++UNAME_SYSTEM = ${UNAME_SYSTEM} ++UNAME_VERSION = ${UNAME_VERSION} ++EOF ++ ++exit 1 ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "timestamp='" ++# time-stamp-format: "%:y-%02m-%02d" ++# time-stamp-end: "'" ++# End: +Index: b/common/autoconf/build-aux/config.sub +=================================================================== +--- a/common/autoconf/build-aux/config.sub ++++ b/common/autoconf/build-aux/config.sub +@@ -1,70 +1,40 @@ + #! /bin/sh ++# Configuration validation subroutine script. ++# Copyright 1992-2014 Free Software Foundation, Inc. + +-# +-# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. +-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +-# +-# This code is free software; you can redistribute it and/or modify it +-# under the terms of the GNU General Public License version 2 only, as +-# published by the Free Software Foundation. Oracle designates this +-# particular file as subject to the "Classpath" exception as provided +-# by Oracle in the LICENSE file that accompanied this code. +-# +-# This code is distributed in the hope that it will be useful, but WITHOUT +-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +-# version 2 for more details (a copy is included in the LICENSE file that +-# accompanied this code). +-# +-# You should have received a copy of the GNU General Public License version +-# 2 along with this work; if not, write to the Free Software Foundation, +-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +-# +-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +-# or visit www.oracle.com if you need additional information or have any +-# questions. +-# ++timestamp='2014-05-01' + +-# Configuration validation subroutine script. +-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +-# Free Software Foundation, Inc. +- +-timestamp='2008-01-16' +- +-# This file is (in principle) common to ALL GNU software. +-# The presence of a machine in this file suggests that SOME GNU software +-# can handle that machine. It does not imply ALL GNU software can. +-# +-# This file is free software; you can redistribute it and/or modify +-# it under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 2 of the License, or ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3 of the License, or + # (at your option) any later version. + # +-# This program is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-# GNU General Public License for more details. ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +-# 02110-1301, USA. ++# along with this program; if not, see <http://www.gnu.org/licenses/>. + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under +-# the same distribution terms that you use for the rest of that program. ++# the same distribution terms that you use for the rest of that ++# program. This Exception is an additional permission under section 7 ++# of the GNU General Public License, version 3 ("GPLv3"). + + +-# Please send patches to <config-patches@gnu.org>. Submit a context +-# diff and a properly formatted ChangeLog entry. ++# Please send patches with a ChangeLog entry to config-patches@gnu.org. + # + # Configuration subroutine to validate and canonicalize a configuration type. + # Supply the specified configuration type as an argument. + # If it is invalid, we print an error message on stderr and exit with code 1. + # Otherwise, we print the canonical config type on stdout and succeed. + ++# You can get the latest version of this script from: ++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD ++ + # This file is supposed to be the same for all GNU packages + # and recognize all the CPU types, system types and aliases + # that are meaningful with *any* GNU software. +@@ -98,8 +68,7 @@ Report bugs and patches to <config-patch + version="\ + GNU config.sub ($timestamp) + +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. ++Copyright 1992-2014 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -146,12 +115,18 @@ esac + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ +- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ ++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ ++ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ ++ knetbsd*-gnu* | netbsd*-gnu* | \ ++ kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; ++ android-linux) ++ os=-linux-android ++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ++ ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] +@@ -174,10 +149,13 @@ case $os in + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ +- -apple | -axis | -knuth | -cray) ++ -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; ++ -bluegene*) ++ os=-cnk ++ ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 +@@ -192,10 +170,10 @@ case $os in + os=-chorusos + basic_machine=$1 + ;; +- -chorusrdb) +- os=-chorusrdb ++ -chorusrdb) ++ os=-chorusrdb + basic_machine=$1 +- ;; ++ ;; + -hiux*) + os=-hiuxwe2 + ;; +@@ -240,6 +218,12 @@ case $os in + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; ++ -lynx*178) ++ os=-lynxos178 ++ ;; ++ -lynx*5) ++ os=-lynxos5 ++ ;; + -lynx*) + os=-lynxos + ;; +@@ -264,59 +248,85 @@ case $basic_machine in + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ ++ | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ +- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ ++ | arc | arceb \ ++ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ ++ | avr | avr32 \ ++ | be32 | be64 \ + | bfin \ +- | c4x | clipper \ ++ | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ ++ | epiphany \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ ++ | k1om \ ++ | le32 | le64 \ ++ | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ +- | maxq | mb | microblaze | mcore | mep \ ++ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ +- | mips64vr | mips64vrel \ ++ | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ ++ | mips64r5900 | mips64r5900el \ ++ | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ ++ | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ ++ | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ ++ | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ ++ | moxie \ + | mt \ + | msp430 \ +- | nios | nios2 \ ++ | nds32 | nds32le | nds32be \ ++ | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ +- | or32 \ ++ | open8 | or1k | or1knd | or32 \ + | pdp10 | pdp11 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ ++ | rl78 | rx \ + | score \ +- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ ++ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ +- | spu | strongarm \ +- | tahoe | thumb | tic4x | tic80 | tron \ +- | v850 | v850e \ ++ | spu \ ++ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ ++ | ubicom32 \ ++ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | we32k \ +- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ +- | z8k) ++ | x86 | xc16x | xstormy16 | xtensa \ ++ | z8k | z80) + basic_machine=$basic_machine-unknown + ;; +- m6811 | m68hc11 | m6812 | m68hc12) +- # Motorola 68HC11/12. ++ c54x) ++ basic_machine=tic54x-unknown ++ ;; ++ c55x) ++ basic_machine=tic55x-unknown ++ ;; ++ c6x) ++ basic_machine=tic6x-unknown ++ ;; ++ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; +@@ -326,6 +336,21 @@ case $basic_machine in + basic_machine=mt-unknown + ;; + ++ strongarm | thumb | xscale) ++ basic_machine=arm-unknown ++ ;; ++ xgate) ++ basic_machine=$basic_machine-unknown ++ os=-none ++ ;; ++ xscaleeb) ++ basic_machine=armeb-unknown ++ ;; ++ ++ xscaleel) ++ basic_machine=armel-unknown ++ ;; ++ + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. +@@ -340,64 +365,82 @@ case $basic_machine in + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ ++ | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ +- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ ++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ ++ | be32-* | be64-* \ + | bfin-* | bs2000-* \ +- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ +- | clipper-* | craynv-* | cydra-* \ ++ | c[123]* | c30-* | [cjt]90-* | c4x-* \ ++ | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ ++ | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ ++ | k1om-* \ ++ | le32-* | le64-* \ ++ | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ +- | m88110-* | m88k-* | maxq-* | mcore-* \ ++ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ ++ | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ +- | mips64vr-* | mips64vrel-* \ ++ | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ ++ | mips64r5900-* | mips64r5900el-* \ ++ | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ ++ | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ ++ | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ ++ | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ +- | nios-* | nios2-* \ ++ | nds32-* | nds32le-* | nds32be-* \ ++ | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ ++ | open8-* \ ++ | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ +- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ ++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ +- | romp-* | rs6000-* \ +- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ ++ | rl78-* | romp-* | rs6000-* | rx-* \ ++ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ +- | tahoe-* | thumb-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ ++ | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ++ | tile*-* \ + | tron-* \ +- | v850-* | v850e-* | vax-* \ ++ | ubicom32-* \ ++ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ ++ | vax-* \ + | we32k-* \ +- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ ++ | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ +- | z8k-*) ++ | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) +@@ -419,7 +462,7 @@ case $basic_machine in + basic_machine=a29k-amd + os=-udi + ;; +- abacus) ++ abacus) + basic_machine=abacus-unknown + ;; + adobe68k) +@@ -465,6 +508,10 @@ case $basic_machine in + basic_machine=m68k-apollo + os=-bsd + ;; ++ aros) ++ basic_machine=i386-pc ++ os=-aros ++ ;; + aux) + basic_machine=m68k-apple + os=-aux +@@ -481,10 +528,27 @@ case $basic_machine in + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; ++ bluegene*) ++ basic_machine=powerpc-ibm ++ os=-cnk ++ ;; ++ c54x-*) ++ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ c55x-*) ++ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ c6x-*) ++ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; ++ cegcc) ++ basic_machine=arm-unknown ++ os=-cegcc ++ ;; + convex-c1) + basic_machine=c1-convex + os=-bsd +@@ -513,7 +577,7 @@ case $basic_machine in + basic_machine=craynv-cray + os=-unicosmp + ;; +- cr16) ++ cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; +@@ -552,6 +616,10 @@ case $basic_machine in + basic_machine=m88k-motorola + os=-sysv3 + ;; ++ dicos) ++ basic_machine=i686-pc ++ os=-dicos ++ ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp +@@ -667,7 +735,6 @@ case $basic_machine in + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +-# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 +@@ -725,8 +792,15 @@ case $basic_machine in + basic_machine=ns32k-utek + os=-sysv + ;; ++ microblaze*) ++ basic_machine=microblaze-xilinx ++ ;; ++ mingw64) ++ basic_machine=x86_64-pc ++ os=-mingw64 ++ ;; + mingw32) +- basic_machine=i386-pc ++ basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) +@@ -761,10 +835,18 @@ case $basic_machine in + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; ++ msys) ++ basic_machine=i686-pc ++ os=-msys ++ ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; ++ nacl) ++ basic_machine=le32-unknown ++ os=-nacl ++ ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 +@@ -829,6 +911,12 @@ case $basic_machine in + np1) + basic_machine=np1-gould + ;; ++ neo-tandem) ++ basic_machine=neo-tandem ++ ;; ++ nse-tandem) ++ basic_machine=nse-tandem ++ ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; +@@ -911,9 +999,10 @@ case $basic_machine in + ;; + power) basic_machine=power-ibm + ;; +- ppc) basic_machine=powerpc-unknown ++ ppc | ppcbe) basic_machine=powerpc-unknown + ;; +- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ppc-* | ppcbe-*) ++ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown +@@ -938,7 +1027,11 @@ case $basic_machine in + basic_machine=i586-unknown + os=-pw32 + ;; +- rdos) ++ rdos | rdos64) ++ basic_machine=x86_64-pc ++ os=-rdos ++ ;; ++ rdos32) + basic_machine=i386-pc + os=-rdos + ;; +@@ -1007,6 +1100,9 @@ case $basic_machine in + basic_machine=i860-stratus + os=-sysv4 + ;; ++ strongarm-* | thumb-*) ++ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + sun2) + basic_machine=m68000-sun + ;; +@@ -1063,20 +1159,8 @@ case $basic_machine in + basic_machine=t90-cray + os=-unicos + ;; +- tic54x | c54x*) +- basic_machine=tic54x-unknown +- os=-coff +- ;; +- tic55x | c55x*) +- basic_machine=tic55x-unknown +- os=-coff +- ;; +- tic6x | c6x*) +- basic_machine=tic6x-unknown +- os=-coff +- ;; + tile*) +- basic_machine=tile-unknown ++ basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) +@@ -1146,6 +1230,9 @@ case $basic_machine in + xps | xps100) + basic_machine=xps100-honeywell + ;; ++ xscale-* | xscalee[bl]-*) ++ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ++ ;; + ymp) + basic_machine=ymp-cray + os=-unicos +@@ -1154,6 +1241,10 @@ case $basic_machine in + basic_machine=z8k-unknown + os=-sim + ;; ++ z80-*-coff) ++ basic_machine=z80-unknown ++ os=-sim ++ ;; + none) + basic_machine=none-none + os=-none +@@ -1192,7 +1283,7 @@ case $basic_machine in + we32k) + basic_machine=we32k-att + ;; +- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) ++ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) +@@ -1239,9 +1330,12 @@ esac + if [ x"$os" != x"" ] + then + case $os in +- # First match some system type aliases +- # that might get confused with valid system types. ++ # First match some system type aliases ++ # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. ++ -auroraux) ++ os=-auroraux ++ ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; +@@ -1262,21 +1356,23 @@ case $os in + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ +- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ +- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ ++ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ ++ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ ++ | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ +- | -aos* \ ++ | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ +- | -openbsd* | -solidbsd* \ ++ | -bitrig* | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ +- | -chorusos* | -chorusrdb* \ +- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ ++ | -chorusos* | -chorusrdb* | -cegcc* \ ++ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ++ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ ++ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ +@@ -1284,7 +1380,7 @@ case $os in + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ +- | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) ++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) +@@ -1323,7 +1419,7 @@ case $os in + -opened*) + os=-openedition + ;; +- -os400*) ++ -os400*) + os=-os400 + ;; + -wince*) +@@ -1372,7 +1468,7 @@ case $os in + -sinix*) + os=-sysv4 + ;; +- -tpf*) ++ -tpf*) + os=-tpf + ;; + -triton*) +@@ -1408,12 +1504,14 @@ case $os in + -aros*) + os=-aros + ;; +- -kaos*) +- os=-kaos +- ;; + -zvmoe) + os=-zvmoe + ;; ++ -dicos*) ++ os=-dicos ++ ;; ++ -nacl*) ++ ;; + -none) + ;; + *) +@@ -1436,10 +1534,10 @@ else + # system, and we'll never get to this point. + + case $basic_machine in +- score-*) ++ score-*) + os=-elf + ;; +- spu-*) ++ spu-*) + os=-elf + ;; + *-acorn) +@@ -1451,8 +1549,23 @@ case $basic_machine in + arm*-semi) + os=-aout + ;; +- c4x-* | tic4x-*) +- os=-coff ++ c4x-* | tic4x-*) ++ os=-coff ++ ;; ++ c8051-*) ++ os=-elf ++ ;; ++ hexagon-*) ++ os=-elf ++ ;; ++ tic54x-*) ++ os=-coff ++ ;; ++ tic55x-*) ++ os=-coff ++ ;; ++ tic6x-*) ++ os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) +@@ -1472,14 +1585,11 @@ case $basic_machine in + ;; + m68000-sun) + os=-sunos3 +- # This also exists in the configure program, but was not the +- # default. +- # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; +- mep-*) ++ mep-*) + os=-elf + ;; + mips*-cisco) +@@ -1506,7 +1616,7 @@ case $basic_machine in + *-ibm) + os=-aix + ;; +- *-knuth) ++ *-knuth) + os=-mmixware + ;; + *-wec) +@@ -1611,7 +1721,7 @@ case $basic_machine in + -sunos*) + vendor=sun + ;; +- -aix*) ++ -cnk*|-aix*) + vendor=ibm + ;; + -beos*) diff --git a/debian/patches/bootstrap-with-gcj.diff b/debian/patches/bootstrap-with-gcj.diff new file mode 100644 index 0000000..1b4ea12 --- /dev/null +++ b/debian/patches/bootstrap-with-gcj.diff @@ -0,0 +1,654 @@ +Description: Build the langtools with GCJ. This patch is incomplete but may be + used as a starting point for someone really willing to bootstrap OpenJDK 8 + with GCJ. The compilation fails due to the missing java.nio.file API, several + classes would have to be modified to work without this package. It's possible + to ignore ~100 errors by skipping the compilation of jdeps (delete the + langtools/src/share/classes/com/sun/tools/jdeps directory). The build will then + fail on the BUILD_FULL_JAVAC phase. +Author: Emmanuel Bourg <ebourg@apache.org> +--- a/common/autoconf/boot-jdk.m4 ++++ b/common/autoconf/boot-jdk.m4 +@@ -54,7 +54,7 @@ + BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1` + + # Extra M4 quote needed to protect [] in grep expression. +- [FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`] ++ [FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[5678]\.'`] + if test "x$FOUND_VERSION_78" = x; then + AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring]) + AC_MSG_NOTICE([(Your Boot JDK must be version 7 or 8)]) +@@ -278,7 +278,7 @@ + BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA,java) + BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC,javac) + BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAH,javah) +- BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAP,javap) ++ #BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAP,javap) + BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR,jar) + BOOTJDK_CHECK_TOOL_IN_BOOTJDK(RMIC,rmic) + BOOTJDK_CHECK_TOOL_IN_BOOTJDK(NATIVE2ASCII,native2ascii) +@@ -286,7 +286,7 @@ + # Finally, set some other options... + + # When compiling code to be executed by the Boot JDK, force jdk7 compatibility. +- BOOT_JDK_SOURCETARGET="-source 7 -target 7" ++ BOOT_JDK_SOURCETARGET="-source 1.7 -target 1.7" + AC_SUBST(BOOT_JDK_SOURCETARGET) + AC_SUBST(JAVAC_FLAGS) + ]) +--- a/langtools/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java ++++ b/langtools/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java +@@ -1163,7 +1163,8 @@ + } + + protected ZipFormatException(String message, Throwable cause) { +- super(message, cause); ++ super(message); ++ initCause(cause); + } + } + } +--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/JNIWriter.java ++++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/JNIWriter.java +@@ -218,7 +218,7 @@ + println(out, cppGuardEnd()); + println(out, guardEnd(cname)); + } catch (TypeSignature.SignatureException e) { +- throw new IOException(e); ++ throw (IOException) new IOException().initCause(e); + } + } + +--- a/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java ++++ b/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java +@@ -40,7 +40,6 @@ + import java.nio.CharBuffer; + import java.nio.charset.CharsetDecoder; + import javax.tools.JavaFileObject; +-import java.text.Normalizer; + + /** + * A subclass of JavaFileObject representing regular files. +@@ -182,17 +181,6 @@ + if (name.equals(n)) { + return true; + } +- if (isMacOS && Normalizer.isNormalized(name, Normalizer.Form.NFD) +- && Normalizer.isNormalized(n, Normalizer.Form.NFC)) { +- // On Mac OS X it is quite possible to file name and class +- // name normalized in a different way - in that case we have to normalize file name +- // to the Normal Form Compised (NFC) +- String normName = Normalizer.normalize(name, Normalizer.Form.NFC); +- if (normName.equals(n)) { +- this.name = normName; +- return true; +- } +- } + + if (name.equalsIgnoreCase(n)) { + try { +--- a/langtools/src/share/classes/com/sun/tools/javac/tree/DocPretty.java ++++ b/langtools/src/share/classes/com/sun/tools/javac/tree/DocPretty.java +@@ -67,7 +67,7 @@ + tree.accept(this, null); + } + } catch (UncheckedIOException ex) { +- throw new IOException(ex.getMessage(), ex); ++ throw (IOException) new IOException(ex.getMessage()).initCause(ex); + } + } + +--- a/make/common/JavaCompilation.gmk ++++ b/make/common/JavaCompilation.gmk +@@ -549,7 +549,7 @@ + $$(call ListPathsSafely,$1_SRCS,\n, >> $$($1_BIN)/_the.$1_batch.tmp) + $(ECHO) Compiling `$(WC) $$($1_BIN)/_the.$1_batch.tmp | $(TR) -s ' ' | $(CUT) -f 2 -d ' '` files for $1 + ($$($1_JVM) $$($1_JAVAC) $$($1_FLAGS) \ +- -implicit:none -sourcepath "$$($1_SRCROOTSC)" \ ++ -sourcepath "$$($1_SRCROOTSC)" \ + -d $$($1_BIN) $$($1_HEADERS_ARG) @$$($1_BIN)/_the.$1_batch.tmp && \ + $(MV) $$($1_BIN)/_the.$1_batch.tmp $$($1_BIN)/_the.$1_batch) + +--- a/langtools/src/share/classes/com/sun/tools/javac/util/ServiceLoader.java ++++ b/langtools/src/share/classes/com/sun/tools/javac/util/ServiceLoader.java +@@ -38,7 +38,6 @@ + import java.util.List; + import java.util.Map; + import java.util.NoSuchElementException; +-import java.util.Objects; + import java.util.ServiceConfigurationError; + + +@@ -70,7 +69,7 @@ + private ClassLoader loader; + + // Cached providers, in instantiation order +- private LinkedHashMap<String,S> providers = new LinkedHashMap<>(); ++ private LinkedHashMap<String,S> providers = new LinkedHashMap<String,S>(); + + // The current lazy-lookup iterator + private LazyIterator lookupIterator; +@@ -92,7 +91,10 @@ + } + + private ServiceLoader(Class<S> svc, ClassLoader cl) { +- service = Objects.requireNonNull(svc, "Service interface cannot be null"); ++ if (svc == null) { ++ throw new NullPointerException("Service interface cannot be null"); ++ } ++ service = svc; + loader = (cl == null) ? ClassLoader.getSystemClassLoader() : cl; + reload(); + } +@@ -170,7 +172,7 @@ + { + InputStream in = null; + BufferedReader r = null; +- ArrayList<String> names = new ArrayList<>(); ++ ArrayList<String> names = new ArrayList<String>(); + try { + // The problem is that by default, streams opened with + // u.openInputStream use a cached reference to a JarFile, which +@@ -362,7 +364,7 @@ + public static <S> ServiceLoader<S> load(Class<S> service, + ClassLoader loader) + { +- return new ServiceLoader<>(service, loader); ++ return new ServiceLoader<S>(service, loader); + } + + /** +--- a/langtools/src/share/classes/javax/annotation/processing/AbstractProcessor.java ++++ b/langtools/src/share/classes/javax/annotation/processing/AbstractProcessor.java +@@ -28,7 +28,6 @@ + import java.util.Set; + import java.util.HashSet; + import java.util.Collections; +-import java.util.Objects; + import javax.lang.model.element.*; + import javax.lang.model.SourceVersion; + import javax.tools.Diagnostic; +@@ -147,7 +146,8 @@ + public synchronized void init(ProcessingEnvironment processingEnv) { + if (initialized) + throw new IllegalStateException("Cannot call init more than once."); +- Objects.requireNonNull(processingEnv, "Tool provided null ProcessingEnvironment"); ++ if (processingEnv == null) ++ throw new NullPointerException("Tool provided null ProcessingEnvironment"); + + this.processingEnv = processingEnv; + initialized = true; +--- a/langtools/src/share/classes/com/sun/tools/javac/util/Pair.java ++++ b/langtools/src/share/classes/com/sun/tools/javac/util/Pair.java +@@ -25,8 +25,6 @@ + + package com.sun.tools.javac.util; + +-import java.util.Objects; +- + /** A generic class for pairs. + * + * <p><b>This is NOT part of any supported API. +@@ -51,8 +49,12 @@ + public boolean equals(Object other) { + return + other instanceof Pair<?,?> && +- Objects.equals(fst, ((Pair<?,?>)other).fst) && +- Objects.equals(snd, ((Pair<?,?>)other).snd); ++ equals(fst, ((Pair<?,?>)other).fst) && ++ equals(snd, ((Pair<?,?>)other).snd); ++ } ++ ++ private boolean equals(Object a, Object b) { ++ return (a == b) || (a != null && a.equals(b)); + } + + public int hashCode() { +--- a/langtools/make/build.properties ++++ b/langtools/make/build.properties +@@ -68,7 +68,7 @@ + # set the following to -version to verify the versions of javac being used + javac.version.opt = + # in time, there should be no exceptions to -Xlint:all +-javac.lint.opts = -Xlint:all -Werror ++javac.lint.opts = -Xlint:all + + # options for the <javadoc> task for javac + #javadoc.jls3.url=http://java.sun.com/docs/books/jls/ +--- a/langtools/make/BuildLangtools.gmk ++++ b/langtools/make/BuildLangtools.gmk +@@ -36,7 +36,7 @@ + JAVAC := $(JAVAC), \ + SERVER_DIR := $(SJAVAC_SERVER_DIR), \ + SERVER_JVM := $(SJAVAC_SERVER_JAVA), \ +- FLAGS := -XDignore.symbol.file=true -g -Xlint:all$(COMMA)-deprecation -Werror)) ++ FLAGS := -XDignore.symbol.file=true -g -Xlint:all$(COMMA)-deprecation -nowarn -1.7)) + + # javax.tools.JavaCompilerTool isn't really a suffix but this gets the file copied. + RESOURCE_SUFFIXES := .gif .xml .css .js javax.tools.JavaCompilerTool +@@ -175,7 +175,7 @@ + JAVAC := "-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar" \ + -cp $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \ + com.sun.tools.javac.Main, \ +- FLAGS := -XDignore.symbol.file=true -Xlint:all$(COMMA)-deprecation -Werror, \ ++ FLAGS := -XDignore.symbol.file=true -Xlint:all$(COMMA)-deprecation, \ + SERVER_DIR := $(SJAVAC_SERVER_DIR), \ + SERVER_JVM := $(SJAVAC_SERVER_JAVA))) + +--- a/langtools/src/share/classes/com/sun/tools/classfile/ClassFile.java ++++ b/langtools/src/share/classes/com/sun/tools/classfile/ClassFile.java +@@ -28,8 +28,7 @@ + import java.io.File; + import java.io.IOException; + import java.io.InputStream; +-import java.nio.file.Files; +-import java.nio.file.Path; ++import java.io.FileInputStream; + + import static com.sun.tools.classfile.AccessFlags.*; + +@@ -44,26 +43,16 @@ + public class ClassFile { + public static ClassFile read(File file) + throws IOException, ConstantPoolException { +- return read(file.toPath(), new Attribute.Factory()); ++ return read(file, new Attribute.Factory()); + } + +- public static ClassFile read(Path input) +- throws IOException, ConstantPoolException { +- return read(input, new Attribute.Factory()); +- } +- +- public static ClassFile read(Path input, Attribute.Factory attributeFactory) ++ public static ClassFile read(File file, Attribute.Factory attributeFactory) + throws IOException, ConstantPoolException { +- try (InputStream in = Files.newInputStream(input)) { ++ try (InputStream in = new FileInputStream(file)) { + return new ClassFile(in, attributeFactory); + } + } + +- public static ClassFile read(File file, Attribute.Factory attributeFactory) +- throws IOException, ConstantPoolException { +- return read(file.toPath(), attributeFactory); +- } +- + public static ClassFile read(InputStream in) + throws IOException, ConstantPoolException { + return new ClassFile(in, new Attribute.Factory()); +--- a/langtools/src/share/classes/com/sun/tools/javac/nio/PathFileManager.java ++++ b/langtools/src/share/classes/com/sun/tools/javac/nio/PathFileManager.java +@@ -25,10 +25,8 @@ + + package com.sun.tools.javac.nio; + ++import java.io.File; + import java.io.IOException; +-import java.nio.file.FileSystem; +-import java.nio.file.FileSystems; +-import java.nio.file.Path; + import javax.tools.FileObject; + import javax.tools.JavaFileManager; + import javax.tools.JavaFileObject; +@@ -52,13 +50,13 @@ + * Get the default file system used to create paths. If no value has been + * set, the default file system is {@link FileSystems#getDefault}. + */ +- FileSystem getDefaultFileSystem(); ++ //FileSystem getDefaultFileSystem(); + + /** + * Set the default file system used to create paths. + * @param fs the default file system used to create any new paths. + */ +- void setDefaultFileSystem(FileSystem fs); ++ //void setDefaultFileSystem(FileSystem fs); + + /** + * Get file objects representing the given files. +@@ -69,7 +67,7 @@ + * a directory + */ + Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths( +- Iterable<? extends Path> paths); ++ Iterable<File> paths); + + /** + * Get file objects representing the given paths. +@@ -86,7 +84,7 @@ + * @throws NullPointerException if the given array contains null + * elements + */ +- Iterable<? extends JavaFileObject> getJavaFileObjects(Path... paths); ++ Iterable<? extends JavaFileObject> getJavaFileObjects(File... paths); + + /** + * Return the Path for a file object that has been obtained from this +@@ -97,7 +95,7 @@ + * @throws IllegalArgumentException is the file object was not obtained from + * from this file manager. + */ +- Path getPath(FileObject fo); ++ File getPath(FileObject fo); + + /** + * Get the search path associated with the given location. +@@ -107,7 +105,7 @@ + * associated search path + * @see #setLocation + */ +- Iterable<? extends Path> getLocation(Location location); ++ Iterable<File> getLocation(Location location); + + /** + * Associate the given search path with the given location. Any +@@ -122,5 +120,5 @@ + * @throws IOException if location is an output location and searchpath + * does not represent an existing directory + */ +- void setLocation(Location location, Iterable<? extends Path> searchPath) throws IOException; ++ void setLocation(Location location, Iterable<File> searchPath) throws IOException; + } +--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/PathDocFileFactory.java ++++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/PathDocFileFactory.java +@@ -28,15 +28,13 @@ + import java.io.BufferedInputStream; + import java.io.BufferedOutputStream; + import java.io.BufferedWriter; ++import java.io.File; + import java.io.IOException; + import java.io.InputStream; + import java.io.OutputStream; + import java.io.OutputStreamWriter; + import java.io.UnsupportedEncodingException; + import java.io.Writer; +-import java.nio.file.DirectoryStream; +-import java.nio.file.Files; +-import java.nio.file.Path; + import java.util.ArrayList; + import java.util.Arrays; + import java.util.LinkedHashSet; +@@ -65,7 +63,7 @@ + */ + class PathDocFileFactory extends DocFileFactory { + private final PathFileManager fileManager; +- private final Path destDir; ++ private final File destDir; + + public PathDocFileFactory(Configuration configuration) { + super(configuration); +@@ -75,7 +73,7 @@ + || !fileManager.hasLocation(DocumentationTool.Location.DOCUMENTATION_OUTPUT)) { + try { + String dirName = configuration.destDirName.isEmpty() ? "." : configuration.destDirName; +- Path dir = fileManager.getDefaultFileSystem().getPath(dirName); ++ File dir = new File(dirName); + fileManager.setLocation(DocumentationTool.Location.DOCUMENTATION_OUTPUT, Arrays.asList(dir)); + } catch (IOException e) { + throw new DocletAbortException(e); +@@ -86,11 +84,11 @@ + } + + public DocFile createFileForDirectory(String file) { +- return new StandardDocFile(fileManager.getDefaultFileSystem().getPath(file)); ++ return new StandardDocFile(new File(file)); + } + + public DocFile createFileForInput(String file) { +- return new StandardDocFile(fileManager.getDefaultFileSystem().getPath(file)); ++ return new StandardDocFile(new File(file)); + } + + public DocFile createFileForOutput(DocPath path) { +@@ -104,10 +102,10 @@ + + Set<DocFile> files = new LinkedHashSet<DocFile>(); + if (fileManager.hasLocation(location)) { +- for (Path f: fileManager.getLocation(location)) { +- if (Files.isDirectory(f)) { +- f = f.resolve(path.getPath()); +- if (Files.exists(f)) ++ for (File f: fileManager.getLocation(location)) { ++ if (f.isDirectory()) { ++ f = new File(f, path.getPath()); ++ if (f.exists()) + files.add(new StandardDocFile(f)); + } + } +@@ -116,10 +114,10 @@ + } + + class StandardDocFile extends DocFile { +- private Path file; ++ private File file; + + /** Create a StandardDocFile for a given file. */ +- private StandardDocFile(Path file) { ++ private StandardDocFile(File file) { + super(configuration); + this.file = file; + } +@@ -127,7 +125,7 @@ + /** Create a StandardDocFile for a given location and relative path. */ + private StandardDocFile(Location location, DocPath path) { + super(configuration, location, path); +- this.file = destDir.resolve(path.getPath()); ++ this.file = new File(destDir, path.getPath()); + } + + /** Open an input stream for the file. */ +@@ -169,22 +167,22 @@ + + /** Return true if the file can be read. */ + public boolean canRead() { +- return Files.isReadable(file); ++ return file.canRead(); + } + + /** Return true if the file can be written. */ + public boolean canWrite() { +- return Files.isWritable(file); ++ return file.canWrite(); + } + + /** Return true if the file exists. */ + public boolean exists() { +- return Files.exists(file); ++ return file.exists(); + } + + /** Return the base name (last component) of the file name. */ + public String getName() { +- return file.getFileName().toString(); ++ return file.getName(); + } + + /** Return the file system path for this file. */ +@@ -199,12 +197,12 @@ + + /** Return true is file identifies a directory. */ + public boolean isDirectory() { +- return Files.isDirectory(file); ++ return file.isDirectory(); + } + + /** Return true is file identifies a file. */ + public boolean isFile() { +- return Files.isRegularFile(file); ++ return file.exists() && !file.isDirectory(); + } + + /** Return true if this file is the same as another. */ +@@ -212,32 +210,21 @@ + if (!(other instanceof StandardDocFile)) + return false; + +- try { +- return Files.isSameFile(file, ((StandardDocFile) other).file); +- } catch (IOException e) { +- return false; +- } ++ return file.equals(((StandardDocFile) other).file); + } + + /** If the file is a directory, list its contents. */ + public Iterable<DocFile> list() throws IOException { + List<DocFile> files = new ArrayList<DocFile>(); +- try (DirectoryStream<Path> ds = Files.newDirectoryStream(file)) { +- for (Path f: ds) { +- files.add(new StandardDocFile(f)); +- } ++ for (File f : file.listFiles()) { ++ files.add(new StandardDocFile(f)); + } + return files; + } + + /** Create the file as a directory, including any parent directories. */ + public boolean mkdirs() { +- try { +- Files.createDirectories(file); +- return true; +- } catch (IOException e) { +- return false; +- } ++ return file.mkdirs(); + } + + /** +@@ -258,7 +245,7 @@ + */ + public DocFile resolve(String p) { + if (location == null && path == null) { +- return new StandardDocFile(file.resolve(p)); ++ return new StandardDocFile(new File(file, p)); + } else { + return new StandardDocFile(location, path.resolve(p)); + } +@@ -272,7 +259,7 @@ + public DocFile resolveAgainst(Location locn) { + if (locn != DocumentationTool.Location.DOCUMENTATION_OUTPUT) + throw new IllegalArgumentException(); +- return new StandardDocFile(destDir.resolve(file)); ++ return new StandardDocFile(new File(destDir, file.toString())); + } + + /** Return a string to identify the contents of this object, +@@ -291,7 +278,7 @@ + return sb.toString(); + } + +- private JavaFileObject getJavaFileObjectForInput(Path file) { ++ private JavaFileObject getJavaFileObjectForInput(File file) { + return fileManager.getJavaFileObjects(file).iterator().next(); + } + +--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java ++++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java +@@ -196,7 +196,8 @@ + } + + private static String encodeURL(String url) { +- byte[] urlBytes = url.getBytes(Charset.forName("UTF-8")); ++ try { ++ byte[] urlBytes = url.getBytes("UTF-8"); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < urlBytes.length; i++) { + int c = urlBytes[i]; +@@ -207,6 +208,9 @@ + } + } + return sb.toString(); ++ } catch (java.io.UnsupportedEncodingException e) { ++ throw new RuntimeException(e); ++ } + } + + /** +--- a/langtools/src/share/classes/com/sun/tools/classfile/ReferenceFinder.java ++++ b/langtools/src/share/classes/com/sun/tools/classfile/ReferenceFinder.java +@@ -28,7 +28,6 @@ + import java.util.ArrayList; + import java.util.HashSet; + import java.util.List; +-import java.util.Objects; + import java.util.Set; + import com.sun.tools.classfile.Instruction.TypeKind; + import static com.sun.tools.classfile.ConstantPool.*; +@@ -77,8 +76,11 @@ + * Constructor. + */ + public ReferenceFinder(Filter filter, Visitor visitor) { +- this.filter = Objects.requireNonNull(filter); +- this.visitor = Objects.requireNonNull(visitor); ++ if (filter == null || visitor == null) { ++ throw new NullPointerException(); ++ } ++ this.filter = filter; ++ this.visitor = visitor; + } + + /** +--- a/langtools/src/share/classes/com/sun/tools/javac/sym/Profiles.java ++++ b/langtools/src/share/classes/com/sun/tools/javac/sym/Profiles.java +@@ -25,13 +25,14 @@ + package com.sun.tools.javac.sym; + + import java.io.BufferedInputStream; ++import java.io.BufferedReader; + import java.io.BufferedWriter; + import java.io.File; + import java.io.FileInputStream; + import java.io.FileWriter; ++import java.io.InputStreamReader; + import java.io.IOException; + import java.nio.charset.Charset; +-import java.nio.file.Files; + import java.util.HashMap; + import java.util.Map; + import java.util.Properties; +@@ -59,7 +60,9 @@ + lists.put(i, new TreeSet<String>()); + + File rt_jar_lst = new File(args[1]); +- for (String line: Files.readAllLines(rt_jar_lst.toPath(), Charset.defaultCharset())) { ++ BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(rt_jar_lst))); ++ String line; ++ while ((line = reader.readLine()) != null) { + if (line.endsWith(".class")) { + String type = line.substring(0, line.length() - 6); + int profile = p.getProfile(type); +@@ -67,6 +70,7 @@ + lists.get(i).add(type); + } + } ++ reader.close(); + + for (int i = 1; i <= 4; i++) { + BufferedWriter out = new BufferedWriter(new FileWriter(i + ".txt")); +--- a/langtools/src/share/classes/com/sun/tools/classfile/SourceDebugExtension_attribute.java ++++ b/langtools/src/share/classes/com/sun/tools/classfile/SourceDebugExtension_attribute.java +@@ -58,7 +58,11 @@ + } + + public String getValue() { +- return new String(debug_extension, UTF8); ++ try { ++ return new String(debug_extension, "UTF-8"); ++ } catch (java.io.UnsupportedEncodingException e) { ++ throw new RuntimeException(e); ++ } + } + + public <R, D> R accept(Visitor<R, D> visitor, D data) { +--- a/langtools/src/share/classes/com/sun/tools/javac/util/JavacMessages.java ++++ b/langtools/src/share/classes/com/sun/tools/javac/util/JavacMessages.java +@@ -121,7 +121,7 @@ + ResourceBundle rb = ResourceBundle.getBundle(bundleName, locale); + bundleList = bundleList.prepend(rb); + } catch (MissingResourceException e) { +- throw new InternalError("Cannot find javac resource bundle for locale " + locale); ++ //throw (Error) new InternalError("Cannot find javac resource bundle for locale " + locale).initCause(e); + } + } + bundleCache.put(locale, new SoftReference<List<ResourceBundle>>(bundleList)); diff --git a/debian/patches/compare-pointer-with-literal.patch b/debian/patches/compare-pointer-with-literal.patch new file mode 100644 index 0000000..3d2109a --- /dev/null +++ b/debian/patches/compare-pointer-with-literal.patch @@ -0,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 --git a/debian/patches/compiler-flags.diff b/debian/patches/compiler-flags.diff new file mode 100644 index 0000000..47101c2 --- /dev/null +++ b/debian/patches/compiler-flags.diff @@ -0,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 @@ + 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 --git a/debian/patches/default-jvm-cfg-aarch64.diff b/debian/patches/default-jvm-cfg-aarch64.diff new file mode 100644 index 0000000..6a07e4e --- /dev/null +++ b/debian/patches/default-jvm-cfg-aarch64.diff @@ -0,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 --git a/debian/patches/default-jvm-cfg-default.diff b/debian/patches/default-jvm-cfg-default.diff new file mode 100644 index 0000000..e215ccd --- /dev/null +++ b/debian/patches/default-jvm-cfg-default.diff @@ -0,0 +1,22 @@ +--- a/jdk/src/share/bin/java.c ++++ b/jdk/src/share/bin/java.c +@@ -1699,7 +1699,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; +@@ -1714,6 +1714,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 --git a/debian/patches/disable-doclint-by-default.diff b/debian/patches/disable-doclint-by-default.diff new file mode 100644 index 0000000..b9570fc --- /dev/null +++ b/debian/patches/disable-doclint-by-default.diff @@ -0,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 <ahughes@redhat.com> +Forwarded: not-needed +--- a/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java ++++ b/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java +@@ -812,10 +812,9 @@ public class DocEnv { + doclintOpts.add(opt == null ? DocLint.XMSGS_OPTION : DocLint.XMSGS_CUSTOM_PREFIX + opt); + } + +- if (doclintOpts.isEmpty()) { +- doclintOpts.add(DocLint.XMSGS_OPTION); +- } else if (doclintOpts.size() == 1 +- && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX + "none")) { ++ if (doclintOpts.isEmpty() || ++ (doclintOpts.size() == 1 ++ && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX + "none"))) { + return; + } + +--- a/langtools/test/tools/javadoc/doclint/DocLintTest.java ++++ b/langtools/test/tools/javadoc/doclint/DocLintTest.java +@@ -130,12 +130,12 @@ public class DocLintTest { + }; + + test(Collections.<String>emptyList(), +- Main.Result.ERROR, +- EnumSet.of(Message.DL_ERR9A, Message.DL_WRN12A)); ++ Main.Result.OK, ++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13)); + + test(Arrays.asList(rawDiags), +- Main.Result.ERROR, +- EnumSet.of(Message.DL_ERR9, Message.DL_WRN12)); ++ Main.Result.OK, ++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13)); + + test(Arrays.asList("-Xdoclint:none"), + Main.Result.OK, +@@ -158,8 +158,8 @@ public class DocLintTest { + EnumSet.of(Message.DL_WRN12)); + + test(Arrays.asList(rawDiags, "-private"), +- Main.Result.ERROR, +- EnumSet.of(Message.DL_ERR6, Message.DL_ERR9, Message.DL_WRN12)); ++ Main.Result.OK, ++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13)); + + test(Arrays.asList(rawDiags, "-Xdoclint:syntax", "-private"), + Main.Result.ERROR, diff --git a/debian/patches/dnd-files.patch b/debian/patches/dnd-files.patch new file mode 100644 index 0000000..e900ae8 --- /dev/null +++ b/debian/patches/dnd-files.patch @@ -0,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<URI> uriList = new ArrayList<URI>(); +- URI uri; + while ((line = reader.readLine()) != null) { + try { +- uri = new URI(line); ++ if (!"\0".equals(line)) { ++ uriList.add(new URI(line)); ++ } + } catch (URISyntaxException uriSyntaxException) { + throw new IOException(uriSyntaxException); + } +- uriList.add(uri); + } + return uriList.toArray(new URI[uriList.size()]); + } finally { diff --git a/debian/patches/dont-strip-images.diff b/debian/patches/dont-strip-images.diff new file mode 100644 index 0000000..275eb5d --- /dev/null +++ b/debian/patches/dont-strip-images.diff @@ -0,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 --git a/debian/patches/enumipv6-fix.patch b/debian/patches/enumipv6-fix.patch new file mode 100644 index 0000000..82f73c5 --- /dev/null +++ b/debian/patches/enumipv6-fix.patch @@ -0,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 --git a/debian/patches/fontconfig-arphic-uming.diff b/debian/patches/fontconfig-arphic-uming.diff new file mode 100644 index 0000000..106029a --- /dev/null +++ b/debian/patches/fontconfig-arphic-uming.diff @@ -0,0 +1,244 @@ +--- openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.orig 2008-10-12 10:42:26.000000000 +0000 ++++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties 2008-10-12 10:43:49.000000000 +0000 +@@ -25,107 +25,156 @@ + + # Version + +-# Uses Ubuntu 6.10 (Edgy) fonts and file paths. ++# Used for Ubuntu 6.10 (edgy), Ubuntu 7.04 (feisty), Ubuntu 7.10 (gutsy), ++# Debian 4.0 (etch), Debian 5.0 (lenny) fonts and file paths. + version=1 + + # Component Font Mappings + ++allfonts.chinese-gb18030=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1 ++allfonts.chinese-gb18030.motif=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1 ++allfonts.chinese-big5=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1 ++allfonts.chinese-big5.motif=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1 ++ + dialog.plain.latin-1=DejaVu Sans +-dialog.plain.japanese-x0208=Kochi Gothic +-dialog.plain.korean=Baekmuk Dotum ++dialog.plain.latin-1.motif=LuxiSans-Regular ++dialog.plain.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialog.plain.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++dialog.plain.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + dialog.bold.latin-1=DejaVu Sans Bold +-dialog.bold.japanese-x0208=Kochi Gothic +-dialog.bold.korean=Baekmuk Dotum ++dialog.bold.latin-1.motif=LuxiSans-Bold ++dialog.bold.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialog.bold.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++dialog.bold.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + dialog.italic.latin-1=DejaVu Sans Oblique +-dialog.italic.japanese-x0208=Kochi Gothic +-dialog.italic.korean=Baekmuk Dotum ++dialog.italic.latin-1.motif=LuxiSans-Oblique ++dialog.italic.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialog.italic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++dialog.italic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique +-dialog.bolditalic.japanese-x0208=Kochi Gothic +-dialog.bolditalic.korean=Baekmuk Dotum +- ++dialog.bolditalic.latin-1.motif=LuxiSans-BoldOblique ++dialog.bolditalic.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialog.bolditalic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++dialog.bolditalic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + sansserif.plain.latin-1=DejaVu Sans +-sansserif.plain.japanese-x0208=Kochi Gothic +-sansserif.plain.korean=Baekmuk Dotum ++sansserif.plain.latin-1.motif=LuxiSans-Regular ++sansserif.plain.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++sansserif.plain.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++sansserif.plain.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + sansserif.bold.latin-1=DejaVu Sans Bold +-sansserif.bold.japanese-x0208=Kochi Gothic +-sansserif.bold.korean=Baekmuk Dotum ++sansserif.bold.latin-1.motif=LuxiSans-Bold ++sansserif.bold.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++sansserif.bold.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++sansserif.bold.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + sansserif.italic.latin-1=DejaVu Sans Oblique +-sansserif.italic.japanese-x0208=Kochi Gothic +-sansserif.italic.korean=Baekmuk Dotum ++sansserif.italic.latin-1.motif=LuxiSans-Oblique ++sansserif.italic.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++sansserif.italic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++sansserif.italic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique +-sansserif.bolditalic.japanese-x0208=Kochi Gothic +-sansserif.bolditalic.korean=Baekmuk Dotum +- ++sansserif.bolditalic.latin-1.motif=LuxiSans-BoldOblique ++sansserif.bolditalic.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++sansserif.bolditalic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* ++sansserif.bolditalic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-* + + serif.plain.latin-1=DejaVu Serif +-serif.plain.japanese-x0208=Kochi Mincho +-serif.plain.korean=Baekmuk Batang ++serif.plain.latin-1.motif=LuxiSerif-Regular ++serif.plain.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++serif.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++serif.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + serif.bold.latin-1=DejaVu Serif Bold +-serif.bold.japanese-x0208=Kochi Mincho +-serif.bold.korean=Baekmuk Batang ++serif.bold.latin-1.motif=LuxiSerif-Bold ++serif.bold.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++serif.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++serif.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + serif.italic.latin-1=DejaVu Serif Oblique +-serif.italic.japanese-x0208=Kochi Mincho +-serif.italic.korean=Baekmuk Batang ++serif.italic.latin-1.motif=LuxiSerif-Oblique ++serif.italic.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++serif.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++serif.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + serif.bolditalic.latin-1=DejaVu Serif Bold Oblique +-serif.bolditalic.japanese-x0208=Kochi Mincho +-serif.bolditalic.korean=Baekmuk Batang +- ++serif.bolditalic.latin-1.motif=LuxiSerif-BoldOblique ++serif.bolditalic.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++serif.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++serif.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + monospaced.plain.latin-1=DejaVu Sans Mono +-monospaced.plain.japanese-x0208=Kochi Gothic +-monospaced.plain.korean=Baekmuk Dotum ++monospaced.plain.latin-1.motif=LuxiMono-Regular ++monospaced.plain.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++monospaced.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++monospaced.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + monospaced.bold.latin-1=DejaVu Sans Mono Bold +-monospaced.bold.japanese-x0208=Kochi Gothic +-monospaced.bold.korean=Baekmuk Dotum ++monospaced.bold.latin-1.motif=LuxiMono-Bold ++monospaced.bold.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++monospaced.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++monospaced.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + monospaced.italic.latin-1=DejaVu Sans Mono Oblique +-monospaced.italic.japanese-x0208=Kochi Gothic +-monospaced.italic.korean=Baekmuk Dotum ++monospaced.italic.latin-1.motif=LuxiMono-Oblique ++monospaced.italic.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++monospaced.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++monospaced.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique +-monospaced.bolditalic.japanese-x0208=Kochi Gothic +-monospaced.bolditalic.korean=Baekmuk Dotum +- ++monospaced.bolditalic.latin-1.motif=LuxiMono-BoldOblique ++monospaced.bolditalic.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++monospaced.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++monospaced.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + dialoginput.plain.latin-1=DejaVu Sans Mono +-dialoginput.plain.japanese-x0208=Kochi Gothic +-dialoginput.plain.korean=Baekmuk Dotum ++dialoginput.plain.latin-1.motif=LuxiMono-Regular ++dialoginput.plain.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialoginput.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++dialoginput.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + dialoginput.bold.latin-1=DejaVu Sans Mono Bold +-dialoginput.bold.japanese-x0208=Kochi Gothic +-dialoginput.bold.korean=Baekmuk Dotum ++dialoginput.bold.latin-1.motif=LuxiMono-Bold ++dialoginput.bold.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialoginput.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++dialoginput.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + dialoginput.italic.latin-1=DejaVu Sans Mono Oblique +-dialoginput.italic.japanese-x0208=Kochi Gothic +-dialoginput.italic.korean=Baekmuk Dotum ++dialoginput.italic.latin-1.motif=LuxiMono-Oblique ++dialoginput.italic.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialoginput.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++dialoginput.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique +-dialoginput.bolditalic.japanese-x0208=Kochi Gothic +-dialoginput.bolditalic.korean=Baekmuk Dotum +- +-allfonts.chinese-big5=AR PL ZenKai Uni +-allfonts.chinese-gb18030=AR PL ZenKai Uni ++dialoginput.bolditalic.latin-1.motif=LuxiMono-BoldOblique ++dialoginput.bolditalic.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0 ++dialoginput.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* ++dialoginput.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-* + + # Search Sequences + + sequence.allfonts=latin-1 +-sequence.allfonts.Big5=chinese-big5,latin-1 +-sequence.allfonts.x-euc-jp-linux=japanese-x0208,latin-1 +-sequence.allfonts.EUC-KR=korean,latin-1 +-sequence.allfonts.GB18030=chinese-gb18030,latin-1 ++sequence.allfonts.UTF-8.ko=latin-1,korean ++sequence.allfonts.UTF-8=latin-1,chinese-gb18030 ++sequence.allfonts.UTF-8.ja=latin-1,japanese-x0208 ++sequence.allfonts.UTF-8.zh.CN=latin-1,chinese-gb18030 ++sequence.allfonts.UTF-8.zh.TW=latin-1,chinese-big5 ++sequence.allfonts.Big5=latin-1,chinese-big5 ++sequence.allfonts.GB2312=latin-1,chinese-gb18030 ++sequence.allfonts.x-euc-jp-linux=latin-1,japanese-x0208 ++sequence.allfonts.EUC-KR=latin-1,korean ++sequence.allfonts.GB18030=latin-1,chinese-gb18030 + sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean + ++# Exclusion Ranges ++ ++exclusion.japanese-x0208=0390-03d6,2200-22ef,2701-27be ++ + # Font File Names + + filename.DejaVu_Sans=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf +@@ -143,8 +192,27 @@ + filename.DejaVu_Serif_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Oblique.ttf + filename.DejaVu_Serif_Bold_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldOblique.ttf + +-filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic-subst.ttf +-filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho-subst.ttf +-filename.AR_PL_ZenKai_Uni=/usr/share/fonts//truetype/arphic/ukai.ttf +-filename.Baekmuk_Dotum=/usr/share/fonts/truetype/baekmuk/dotum.ttf +-filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf ++filename.-misc-ar_pl_shanheisun_uni-medium-r-normal--*-*-*-*-p-*-iso10646-1=/usr/share/fonts/truetype/arphic/uming.ttf ++filename.-misc-baekmuk_batang-medium-r-normal--*-%d-*-*-c-*-*-*=/usr/share/fonts/truetype/baekmuk/batang.ttf ++filename.-misc-baekmuk_gulim-medium-r-normal--*-%d-*-*-c-*-*-*=/usr/share/fonts/truetype/baekmuk/gulim.ttf ++filename.-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf ++filename.-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=/usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf ++ ++filename.LuxiSans-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisr.ttf ++filename.LuxiSans-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisb.ttf ++filename.LuxiSans-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisri.ttf ++filename.LuxiSans-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisbi.ttf ++filename.LuxiMono-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximr.ttf ++filename.LuxiMono-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximb.ttf ++filename.LuxiMono-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximri.ttf ++filename.LuxiMono-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximbi.ttf ++filename.LuxiSerif-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirr.ttf ++filename.LuxiSerif-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirb.ttf ++filename.LuxiSerif-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirri.ttf ++filename.LuxiSerif-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirbi.ttf ++ ++# AWT X11 font paths ++awtfontpath.latin-1=/usr/share/fonts/X11/Type1 ++awtfontpath.chinese-gb18030=/usr/share/fonts/truetype/arphic ++awtfontpath.japanese-x0208=/usr/share/fonts/truetype/vlgothic ++awtfontpath.korean=/usr/share/fonts/truetype/baekmuk diff --git a/debian/patches/fontconfig-japanese.diff b/debian/patches/fontconfig-japanese.diff new file mode 100644 index 0000000..793b2dd --- /dev/null +++ b/debian/patches/fontconfig-japanese.diff @@ -0,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 --git a/debian/patches/fontconfig-korean-nanum.diff b/debian/patches/fontconfig-korean-nanum.diff new file mode 100644 index 0000000..6d28ad5 --- /dev/null +++ b/debian/patches/fontconfig-korean-nanum.diff @@ -0,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 --git a/debian/patches/fontconfig-wqy-microhei.patch b/debian/patches/fontconfig-wqy-microhei.patch new file mode 100644 index 0000000..23093aa --- /dev/null +++ b/debian/patches/fontconfig-wqy-microhei.patch @@ -0,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 --git a/debian/patches/gcc6.diff b/debian/patches/gcc6.diff new file mode 100644 index 0000000..8b3b1b8 --- /dev/null +++ b/debian/patches/gcc6.diff @@ -0,0 +1,1086 @@ +# HG changeset patch +# User andrew +# Date 1468209748 -3600 +# Mon Jul 11 05:02:28 2016 +0100 +# Node ID 7eb66a95dbd58d26ed271477076e0ab72e8c9ebf +# Parent 817d9fb584baecae7c989dfd7009a7f0ac7c6360 +8151841: Build needs additional flags to compile with GCC 6 [plus parts of 8149647 & 8032045] +Summary: C++ standard needs to be explicitly set and some optimisations turned off to build on GCC 6 +Reviewed-by: erikj, dholmes, kbarrett + +--- a/common/autoconf/generated-configure.sh ++++ b/common/autoconf/generated-configure.sh +@@ -679,6 +679,9 @@ CFLAGS_JDKEXE + CFLAGS_JDKLIB + MACOSX_VERSION_MIN + PACKAGE_PATH ++NO_LIFETIME_DSE_CFLAG ++NO_DELETE_NULL_POINTER_CHECKS_CFLAG ++CXXSTD_CXXFLAG + LEGACY_EXTRA_LDFLAGS + LEGACY_EXTRA_CXXFLAGS + LEGACY_EXTRA_CFLAGS +@@ -743,6 +746,8 @@ LD + ac_ct_OBJC + OBJCFLAGS + OBJC ++CXX_VERSION ++CC_VERSION + ac_ct_CXX + CXXFLAGS + CXX +@@ -3672,7 +3677,7 @@ fi + + + # +-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 2011, 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 +@@ -3795,6 +3800,19 @@ fi + # questions. + # + ++# Prepare the system so that TOOLCHAIN_CHECK_COMPILER_VERSION can be called. ++# Must have CC_VERSION_NUMBER and CXX_VERSION_NUMBER. ++ ++ ++# Check if the configured compiler (C and C++) is of a specific version or ++# newer. TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS must have been called before. ++# ++# Arguments: ++# $1: The version string to check against the found version ++# $2: block to run if the compiler is at least this version (>=) ++# $3: block to run if the compiler is older than this version (<) ++ ++ + # $1 = compiler to test (CC or CXX) + # $2 = human readable name of compiler (C or C++) + +@@ -3818,10 +3836,22 @@ fi + + + ++# TOOLCHAIN_C_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE], ++# [RUN-IF-FALSE]) ++# ------------------------------------------------------------ ++# Check that the C compiler supports an argument ++ ++ ++# TOOLCHAIN_CXX_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE], ++# [RUN-IF-FALSE]) ++# ------------------------------------------------------------ ++# Check that the C++ compiler supports an argument ++ ++ + # TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE], +-# [RUN-IF-FALSE]) ++# [RUN-IF-FALSE]) + # ------------------------------------------------------------ +-# Check that the c and c++ compilers support an argument ++# Check that the C and C++ compilers support an argument + + + +@@ -3829,6 +3859,8 @@ fi + # Setup the JTREG paths + + ++ ++ + # + # Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. + # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +@@ -3880,7 +3912,7 @@ fi + #CUSTOM_AUTOCONF_INCLUDE + + # Do not change or remove the following line, it is needed for consistency checks: +-DATE_WHEN_GENERATED=1449096260 ++DATE_WHEN_GENERATED=1468207795 + + ############################################################################### + # +@@ -20368,7 +20400,8 @@ $as_echo "$as_me: The result from runnin + + # First line typically looks something like: + # gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 +- COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.* \([1-9][0-9.]*\)/\1/p"` ++ COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | \ ++ $SED -e 's/^.* \([1-9]\.[0-9.]*\)[^0-9.].*$/\1/'` + COMPILER_VENDOR=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^\(.*\) [1-9][0-9.]*/\1/p"` + fi + # This sets CC_VERSION or CXX_VERSION. (This comment is a grep marker) +@@ -21969,7 +22002,8 @@ $as_echo "$as_me: The result from runnin + + # First line typically looks something like: + # gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 +- COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.* \([1-9][0-9.]*\)/\1/p"` ++ COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | \ ++ $SED -e 's/^.* \([1-9]\.[0-9.]*\)[^0-9.].*$/\1/'` + COMPILER_VENDOR=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^\(.*\) [1-9][0-9.]*/\1/p"` + fi + # This sets CC_VERSION or CXX_VERSION. (This comment is a grep marker) +@@ -22240,6 +22274,32 @@ ac_link='$CXX -o conftest$ac_exeext $CXX + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + ++ # This is the compiler version number on the form X.Y[.Z] ++ ++ ++ ++ ++ if test "x$CC_VERSION" != "x$CXX_VERSION"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C and C++ compiler has different version numbers, $CC_VERSION vs $CXX_VERSION." >&5 ++$as_echo "$as_me: WARNING: C and C++ compiler has different version numbers, $CC_VERSION vs $CXX_VERSION." >&2;} ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This typically indicates a broken setup, and is not supported" >&5 ++$as_echo "$as_me: WARNING: This typically indicates a broken setup, and is not supported" >&2;} ++ fi ++ ++ # We only check CC_VERSION since we assume CXX_VERSION is equal. ++ if [[ "$CC_VERSION" =~ (.*\.){3} ]] ; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION. Comparisons might be wrong." >&5 ++$as_echo "$as_me: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION. Comparisons might be wrong." >&2;} ++ fi ++ ++ if [[ "$CC_VERSION" =~ [0-9]{6} ]] ; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has a part larger than 99999: $CC_VERSION. Comparisons might be wrong." >&5 ++$as_echo "$as_me: WARNING: C compiler version number has a part larger than 99999: $CC_VERSION. Comparisons might be wrong." >&2;} ++ fi ++ ++ COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$CC_VERSION"` ++ ++ + ### Locate other tools + + if test "x$OPENJDK_TARGET_OS" = xmacosx; then +@@ -24831,7 +24891,8 @@ $as_echo "$as_me: Rewriting DUMPBIN to \ + + + COMPILER_TYPE=CL +- CCXXFLAGS="$CCXXFLAGS -nologo" ++ # silence copyright notice and other headers. ++ COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo" + + fi + +@@ -29664,12 +29725,57 @@ fi + # + # Now setup the CFLAGS and LDFLAGS for the JDK build. + # Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build. ++ # CFLAGS_JDK - C Compiler flags ++ # CXXFLAGS_JDK - C++ Compiler flags ++ # COMMON_CCXXFLAGS_JDK - common to C and C++ + # + case $COMPILER_NAME in + gcc ) +- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \ ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \ + -pipe \ + -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" ++ CXXSTD_CXXFLAG="-std=gnu++98" ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C++ compiler supports \"$CXXSTD_CXXFLAG $CFLAGS_WARNINGS_ARE_ERRORS\"" >&5 ++$as_echo_n "checking if the C++ compiler supports \"$CXXSTD_CXXFLAG $CFLAGS_WARNINGS_ARE_ERRORS\"... " >&6; } ++ supports=yes ++ ++ saved_cxxflags="$CXXFLAGS" ++ CXXFLAGS="$CXXFLAG $CXXSTD_CXXFLAG $CFLAGS_WARNINGS_ARE_ERRORS" ++ ac_ext=cpp ++ac_cpp='$CXXCPP $CPPFLAGS' ++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++int i; ++_ACEOF ++if ac_fn_cxx_try_compile "$LINENO"; then : ++ ++else ++ supports=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_ext=cpp ++ac_cpp='$CXXCPP $CPPFLAGS' ++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ++ ++ CXXFLAGS="$saved_cxxflags" ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 ++$as_echo "$supports" >&6; } ++ if test "x$supports" = "xyes" ; then ++ : ++ else ++ CXXSTD_CXXFLAG="" ++ fi ++ ++ CXXFLAGS_JDK="${CXXFLAGS_JDK} ${CXXSTD_CXXFLAG}" ++ + case $OPENJDK_TARGET_CPU_ARCH in + arm ) + # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing +@@ -29679,16 +29785,234 @@ fi + # on ppc we don't prevent gcc to omit frame pointer nor strict-aliasing + ;; + * ) +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer" + CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" + ;; + esac ++ ++ REFERENCE_VERSION=6 ++ ++ if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then ++ as_fn_error $? "Internal error: Cannot compare to $REFERENCE_VERSION, only three parts (X.Y.Z) is supported" "$LINENO" 5 ++ fi ++ ++ if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then ++ as_fn_error $? "Internal error: Cannot compare to $REFERENCE_VERSION, only parts < 99999 is supported" "$LINENO" 5 ++ fi ++ ++ # Version comparison method inspired by http://stackoverflow.com/a/24067243 ++ COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$REFERENCE_VERSION"` ++ ++ if test $COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then ++ ++ # These flags are required for GCC 6 builds as undefined behaviour in OpenJDK code ++ # runs afoul of the more aggressive versions of these optimisations. ++ # Notably, value range propagation now assumes that the this pointer of C++ ++ # member functions is non-null. ++ NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks" ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C compiler supports \"$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror\"" >&5 ++$as_echo_n "checking if the C compiler supports \"$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror\"... " >&6; } ++ supports=yes ++ ++ saved_cflags="$CFLAGS" ++ CFLAGS="$CFLAGS $NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror" ++ ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++int i; ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ++else ++ supports=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_ext=cpp ++ac_cpp='$CXXCPP $CPPFLAGS' ++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ++ ++ CFLAGS="$saved_cflags" ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 ++$as_echo "$supports" >&6; } ++ if test "x$supports" = "xyes" ; then ++ C_COMP_SUPPORTS="yes" ++ else ++ C_COMP_SUPPORTS="no" ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C++ compiler supports \"$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror\"" >&5 ++$as_echo_n "checking if the C++ compiler supports \"$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror\"... " >&6; } ++ supports=yes ++ ++ saved_cxxflags="$CXXFLAGS" ++ CXXFLAGS="$CXXFLAG $NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror" ++ ac_ext=cpp ++ac_cpp='$CXXCPP $CPPFLAGS' ++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++int i; ++_ACEOF ++if ac_fn_cxx_try_compile "$LINENO"; then : ++ ++else ++ supports=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_ext=cpp ++ac_cpp='$CXXCPP $CPPFLAGS' ++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ++ ++ CXXFLAGS="$saved_cxxflags" ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 ++$as_echo "$supports" >&6; } ++ if test "x$supports" = "xyes" ; then ++ CXX_COMP_SUPPORTS="yes" ++ else ++ CXX_COMP_SUPPORTS="no" ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if both compilers support \"$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror\"" >&5 ++$as_echo_n "checking if both compilers support \"$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror\"... " >&6; } ++ supports=no ++ if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then supports=yes; fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 ++$as_echo "$supports" >&6; } ++ if test "x$supports" = "xyes" ; then ++ : ++ else ++ NO_DELETE_NULL_POINTER_CHECKS_CFLAG="" ++ fi ++ ++ ++ NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse" ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C compiler supports \"$NO_LIFETIME_DSE_CFLAG -Werror\"" >&5 ++$as_echo_n "checking if the C compiler supports \"$NO_LIFETIME_DSE_CFLAG -Werror\"... " >&6; } ++ supports=yes ++ ++ saved_cflags="$CFLAGS" ++ CFLAGS="$CFLAGS $NO_LIFETIME_DSE_CFLAG -Werror" ++ ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++int i; ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ++else ++ supports=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_ext=cpp ++ac_cpp='$CXXCPP $CPPFLAGS' ++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ++ ++ CFLAGS="$saved_cflags" ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 ++$as_echo "$supports" >&6; } ++ if test "x$supports" = "xyes" ; then ++ C_COMP_SUPPORTS="yes" ++ else ++ C_COMP_SUPPORTS="no" ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C++ compiler supports \"$NO_LIFETIME_DSE_CFLAG -Werror\"" >&5 ++$as_echo_n "checking if the C++ compiler supports \"$NO_LIFETIME_DSE_CFLAG -Werror\"... " >&6; } ++ supports=yes ++ ++ saved_cxxflags="$CXXFLAGS" ++ CXXFLAGS="$CXXFLAG $NO_LIFETIME_DSE_CFLAG -Werror" ++ ac_ext=cpp ++ac_cpp='$CXXCPP $CPPFLAGS' ++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++int i; ++_ACEOF ++if ac_fn_cxx_try_compile "$LINENO"; then : ++ ++else ++ supports=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_ext=cpp ++ac_cpp='$CXXCPP $CPPFLAGS' ++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ++ ++ CXXFLAGS="$saved_cxxflags" ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 ++$as_echo "$supports" >&6; } ++ if test "x$supports" = "xyes" ; then ++ CXX_COMP_SUPPORTS="yes" ++ else ++ CXX_COMP_SUPPORTS="no" ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if both compilers support \"$NO_LIFETIME_DSE_CFLAG -Werror\"" >&5 ++$as_echo_n "checking if both compilers support \"$NO_LIFETIME_DSE_CFLAG -Werror\"... " >&6; } ++ supports=no ++ if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then supports=yes; fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 ++$as_echo "$supports" >&6; } ++ if test "x$supports" = "xyes" ; then ++ : ++ else ++ NO_LIFETIME_DSE_CFLAG="" ++ fi ++ ++ CFLAGS_JDK="${CFLAGS_JDK} ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}" ++ ++ ++ ++ else ++ : ++ fi ++ + ;; + ossc ) +- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS" + case $OPENJDK_TARGET_CPU_ARCH in + x86 ) +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB" + CFLAGS_JDK="$CFLAGS_JDK -erroff=E_BAD_PRAGMA_PACK_VALUE" + ;; + esac +@@ -29707,16 +30031,16 @@ fi + LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK" + ;; + cl ) +- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ + -D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \ + -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \ + -DWIN32 -DIAL" + case $OPENJDK_TARGET_CPU in + x86 ) +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_X86_ -Dx86" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_X86_ -Dx86" + ;; + x86_64 ) +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_AMD64_ -Damd64" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_AMD64_ -Damd64" + ;; + esac + ;; +@@ -29746,7 +30070,7 @@ fi + ;; + esac + +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK $ADD_LP64" + + # The package path is used only on macosx? + PACKAGE_PATH=/opt/local +@@ -29759,27 +30083,27 @@ fi + # Note: -Dmacro is the same as #define macro 1 + # -Dmacro= is the same as #define macro + if test "x$OPENJDK_TARGET_OS" = xsolaris; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN=" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN=" + else +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN" + fi + else +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN" + fi + if test "x$OPENJDK_TARGET_OS" = xlinux; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DLINUX" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DLINUX" + fi + if test "x$OPENJDK_TARGET_OS" = xwindows; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DWINDOWS" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DWINDOWS" + fi + if test "x$OPENJDK_TARGET_OS" = xsolaris; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DSOLARIS" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DSOLARIS" + fi + if test "x$OPENJDK_TARGET_OS" = xaix; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DAIX -DPPC64" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DAIX -DPPC64" + fi + if test "x$OPENJDK_TARGET_OS" = xmacosx; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT" + # Setting these parameters makes it an error to link to macosx APIs that are + # newer than the given OS version and makes the linked binaries compatible even + # if built on a newer version of the OS. +@@ -29789,25 +30113,25 @@ fi + # The macro takes the version with no dots, ex: 1070 + # Let the flags variables get resolved in make for easier override on make + # command line. +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" + LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" + fi + if test "x$OPENJDK_TARGET_OS" = xbsd; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE" + fi + if test "x$DEBUG_LEVEL" = xrelease; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DNDEBUG" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DNDEBUG" + if test "x$OPENJDK_TARGET_OS" = xsolaris; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DTRIMMED" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DTRIMMED" + fi + else +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DDEBUG" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DDEBUG" + fi + +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY" +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'" + +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK \ ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK \ + -I${JDK_OUTPUTDIR}/include \ + -I${JDK_OUTPUTDIR}/include/$OPENJDK_TARGET_OS \ + -I${JDK_TOPDIR}/src/share/javavm/export \ +@@ -29816,12 +30140,12 @@ fi + -I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_API_DIR/native/common" + + # The shared libraries are compiled using the picflag. +- CFLAGS_JDKLIB="$CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA" +- CXXFLAGS_JDKLIB="$CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA " ++ CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA" ++ CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA " + + # Executable flags +- CFLAGS_JDKEXE="$CCXXFLAGS_JDK $CFLAGS_JDK" +- CXXFLAGS_JDKEXE="$CCXXFLAGS_JDK $CXXFLAGS_JDK" ++ CFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK" ++ CXXFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK" + + # Now this is odd. The JDK native libraries have to link against libjvm.so + # On 32-bit machines there is normally two distinct libjvm.so:s, client and server. +@@ -29905,7 +30229,6 @@ fi + + + +- + # Some Zero and Shark settings. + # ZERO_ARCHFLAG tells the compiler which mode to build for + case "${OPENJDK_TARGET_CPU}" in +@@ -29916,8 +30239,9 @@ fi + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + esac + +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"$ZERO_ARCHFLAG\"" >&5 +-$as_echo_n "checking if compiler supports \"$ZERO_ARCHFLAG\"... " >&6; } ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C compiler supports \"$ZERO_ARCHFLAG\"" >&5 ++$as_echo_n "checking if the C compiler supports \"$ZERO_ARCHFLAG\"... " >&6; } + supports=yes + + saved_cflags="$CFLAGS" +@@ -29946,6 +30270,19 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + CFLAGS="$saved_cflags" + ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 ++$as_echo "$supports" >&6; } ++ if test "x$supports" = "xyes" ; then ++ C_COMP_SUPPORTS="yes" ++ else ++ C_COMP_SUPPORTS="no" ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C++ compiler supports \"$ZERO_ARCHFLAG\"" >&5 ++$as_echo_n "checking if the C++ compiler supports \"$ZERO_ARCHFLAG\"... " >&6; } ++ supports=yes ++ + saved_cxxflags="$CXXFLAGS" + CXXFLAGS="$CXXFLAG $ZERO_ARCHFLAG" + ac_ext=cpp +@@ -29975,6 +30312,20 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 + $as_echo "$supports" >&6; } + if test "x$supports" = "xyes" ; then ++ CXX_COMP_SUPPORTS="yes" ++ else ++ CXX_COMP_SUPPORTS="no" ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if both compilers support \"$ZERO_ARCHFLAG\"" >&5 ++$as_echo_n "checking if both compilers support \"$ZERO_ARCHFLAG\"... " >&6; } ++ supports=no ++ if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then supports=yes; fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 ++$as_echo "$supports" >&6; } ++ if test "x$supports" = "xyes" ; then + : + else + ZERO_ARCHFLAG="" +@@ -29985,8 +30336,9 @@ $as_echo "$supports" >&6; } + # Check that the compiler supports -mX (or -qX on AIX) flags + # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does + +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"" >&5 +-$as_echo_n "checking if compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"... " >&6; } ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"" >&5 ++$as_echo_n "checking if the C compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"... " >&6; } + supports=yes + + saved_cflags="$CFLAGS" +@@ -30015,6 +30367,19 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + CFLAGS="$saved_cflags" + ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 ++$as_echo "$supports" >&6; } ++ if test "x$supports" = "xyes" ; then ++ C_COMP_SUPPORTS="yes" ++ else ++ C_COMP_SUPPORTS="no" ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C++ compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"" >&5 ++$as_echo_n "checking if the C++ compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"... " >&6; } ++ supports=yes ++ + saved_cxxflags="$CXXFLAGS" + CXXFLAGS="$CXXFLAG ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + ac_ext=cpp +@@ -30043,6 +30408,20 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 + $as_echo "$supports" >&6; } ++ if test "x$supports" = "xyes" ; then ++ CXX_COMP_SUPPORTS="yes" ++ else ++ CXX_COMP_SUPPORTS="no" ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if both compilers support \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"" >&5 ++$as_echo_n "checking if both compilers support \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"... " >&6; } ++ supports=no ++ if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then supports=yes; fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 ++$as_echo "$supports" >&6; } + if test "x$supports" = "xyes" ; then + COMPILER_SUPPORTS_TARGET_BITS_FLAG=true + else +--- a/common/autoconf/hotspot-spec.gmk.in ++++ b/common/autoconf/hotspot-spec.gmk.in +@@ -1,5 +1,5 @@ + # +-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. + # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + # + # This code is free software; you can redistribute it and/or modify it +@@ -109,7 +109,8 @@ LD:=@HOTSPOT_LD@ + MT:=@HOTSPOT_MT@ + RC:=@HOTSPOT_RC@ + +-EXTRA_CFLAGS=@LEGACY_EXTRA_CFLAGS@ ++EXTRA_CFLAGS=@LEGACY_EXTRA_CFLAGS@ $(NO_DELETE_NULL_POINTER_CHECKS_CFLAG) \ ++ $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG) + EXTRA_CXXFLAGS=@LEGACY_EXTRA_CXXFLAGS@ + EXTRA_LDFLAGS=@LEGACY_EXTRA_LDFLAGS@ + +--- a/common/autoconf/spec.gmk.in ++++ b/common/autoconf/spec.gmk.in +@@ -331,6 +331,10 @@ CXXFLAGS_JDKLIB:=@CXXFLAGS_JDKLIB@ + CFLAGS_JDKEXE:=@CFLAGS_JDKEXE@ + CXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@ + ++NO_DELETE_NULL_POINTER_CHECKS_CFLAG=@NO_DELETE_NULL_POINTER_CHECKS_CFLAG@ ++NO_LIFETIME_DSE_CFLAG=@NO_LIFETIME_DSE_CFLAG@ ++CXXSTD_CXXFLAG=@CXXSTD_CXXFLAG@ ++ + CXX:=@FIXPATH@ @CCACHE@ @CXX@ + #CXXFLAGS:=@CXXFLAGS@ + +--- a/common/autoconf/toolchain.m4 ++++ b/common/autoconf/toolchain.m4 +@@ -23,9 +23,59 @@ + # questions. + # + ++# Prepare the system so that TOOLCHAIN_CHECK_COMPILER_VERSION can be called. ++# Must have CC_VERSION_NUMBER and CXX_VERSION_NUMBER. ++AC_DEFUN([TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS], ++[ ++ if test "x$CC_VERSION" != "x$CXX_VERSION"; then ++ AC_MSG_WARN([C and C++ compiler has different version numbers, $CC_VERSION vs $CXX_VERSION.]) ++ AC_MSG_WARN([This typically indicates a broken setup, and is not supported]) ++ fi ++ ++ # We only check CC_VERSION since we assume CXX_VERSION is equal. ++ if [ [[ "$CC_VERSION" =~ (.*\.){3} ]] ]; then ++ AC_MSG_WARN([C compiler version number has more than three parts (X.Y.Z): $CC_VERSION. Comparisons might be wrong.]) ++ fi ++ ++ if [ [[ "$CC_VERSION" =~ [0-9]{6} ]] ]; then ++ AC_MSG_WARN([C compiler version number has a part larger than 99999: $CC_VERSION. Comparisons might be wrong.]) ++ fi ++ ++ COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", [$]1, [$]2, [$]3) }' <<< "$CC_VERSION"` ++]) ++ ++# Check if the configured compiler (C and C++) is of a specific version or ++# newer. TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS must have been called before. ++# ++# Arguments: ++# $1: The version string to check against the found version ++# $2: block to run if the compiler is at least this version (>=) ++# $3: block to run if the compiler is older than this version (<) ++AC_DEFUN([TOOLCHAIN_CHECK_COMPILER_VERSION], ++[ ++ REFERENCE_VERSION=$1 ++ ++ if [ [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ]; then ++ AC_MSG_ERROR([Internal error: Cannot compare to $REFERENCE_VERSION, only three parts (X.Y.Z) is supported]) ++ fi ++ ++ if [ [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ]; then ++ AC_MSG_ERROR([Internal error: Cannot compare to $REFERENCE_VERSION, only parts < 99999 is supported]) ++ fi ++ ++ # Version comparison method inspired by http://stackoverflow.com/a/24067243 ++ COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", [$]1, [$]2, [$]3) }' <<< "$REFERENCE_VERSION"` ++ ++ if test $COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then ++ m4_ifval([$2], [$2], [:]) ++ else ++ m4_ifval([$3], [$3], [:]) ++ fi ++]) ++ + # $1 = compiler to test (CC or CXX) + # $2 = human readable name of compiler (C or C++) +-AC_DEFUN([TOOLCHAIN_CHECK_COMPILER_VERSION], ++AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION], + [ + COMPILER=[$]$1 + COMPILER_NAME=$2 +@@ -81,7 +131,8 @@ AC_DEFUN([TOOLCHAIN_CHECK_COMPILER_VERSI + + # First line typically looks something like: + # gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2 +- COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.* \(@<:@1-9@:>@@<:@0-9.@:>@*\)/\1/p"` ++ COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | \ ++ $SED -e 's/^.* \(@<:@1-9@:>@\.@<:@0-9.@:>@*\)@<:@^0-9.@:>@.*$/\1/'` + COMPILER_VENDOR=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^\(.*\) @<:@1-9@:>@@<:@0-9.@:>@*/\1/p"` + fi + # This sets CC_VERSION or CXX_VERSION. (This comment is a grep marker) +@@ -181,7 +232,7 @@ AC_DEFUN([TOOLCHAIN_FIND_COMPILER], + AC_MSG_RESULT([no, keeping $1]) + $1="$TEST_COMPILER" + fi +- TOOLCHAIN_CHECK_COMPILER_VERSION([$1], [$COMPILER_NAME]) ++ TOOLCHAIN_EXTRACT_COMPILER_VERSION([$1], [$COMPILER_NAME]) + ]) + + +@@ -385,6 +436,12 @@ AC_DEFUN([TOOLCHAIN_SETUP_PATHS], + # Now that we have resolved CXX ourself, let autoconf have its go at it + AC_PROG_CXX([$CXX]) + ++ # This is the compiler version number on the form X.Y[.Z] ++ AC_SUBST(CC_VERSION) ++ AC_SUBST(CXX_VERSION) ++ ++ TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS ++ + ### Locate other tools + + if test "x$OPENJDK_TARGET_OS" = xmacosx; then +@@ -507,7 +564,8 @@ AC_DEFUN([TOOLCHAIN_SETUP_PATHS], + BASIC_FIXUP_EXECUTABLE(DUMPBIN) + + COMPILER_TYPE=CL +- CCXXFLAGS="$CCXXFLAGS -nologo" ++ # silence copyright notice and other headers. ++ COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo" + ]) + AC_SUBST(RC_FLAGS) + AC_SUBST(COMPILER_TYPE) +@@ -954,12 +1012,20 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_ + # + # Now setup the CFLAGS and LDFLAGS for the JDK build. + # Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build. ++ # CFLAGS_JDK - C Compiler flags ++ # CXXFLAGS_JDK - C++ Compiler flags ++ # COMMON_CCXXFLAGS_JDK - common to C and C++ + # + case $COMPILER_NAME in + gcc ) +- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \ ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \ + -pipe \ + -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" ++ CXXSTD_CXXFLAG="-std=gnu++98" ++ TOOLCHAIN_CXX_COMPILER_CHECK_ARGUMENTS([$CXXSTD_CXXFLAG $CFLAGS_WARNINGS_ARE_ERRORS], ++ [], [CXXSTD_CXXFLAG=""]) ++ CXXFLAGS_JDK="${CXXFLAGS_JDK} ${CXXSTD_CXXFLAG}" ++ AC_SUBST([CXXSTD_CXXFLAG]) + case $OPENJDK_TARGET_CPU_ARCH in + arm ) + # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing +@@ -969,16 +1035,17 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_ + # on ppc we don't prevent gcc to omit frame pointer nor strict-aliasing + ;; + * ) +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer" + CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" + ;; + esac ++ TOOLCHAIN_CHECK_COMPILER_VERSION(6, TOOLCHAIN_SETUP_GCC6_COMPILER_FLAGS) + ;; + ossc ) +- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS" + case $OPENJDK_TARGET_CPU_ARCH in + x86 ) +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB" + CFLAGS_JDK="$CFLAGS_JDK -erroff=E_BAD_PRAGMA_PACK_VALUE" + ;; + esac +@@ -997,16 +1064,16 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_ + LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK" + ;; + cl ) +- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ + -D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \ + -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \ + -DWIN32 -DIAL" + case $OPENJDK_TARGET_CPU in + x86 ) +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_X86_ -Dx86" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_X86_ -Dx86" + ;; + x86_64 ) +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_AMD64_ -Damd64" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_AMD64_ -Damd64" + ;; + esac + ;; +@@ -1036,7 +1103,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_ + ;; + esac + +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK $ADD_LP64" + + # The package path is used only on macosx? + PACKAGE_PATH=/opt/local +@@ -1049,27 +1116,27 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_ + # Note: -Dmacro is the same as #define macro 1 + # -Dmacro= is the same as #define macro + if test "x$OPENJDK_TARGET_OS" = xsolaris; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN=" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN=" + else +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN" + fi + else +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN" + fi + if test "x$OPENJDK_TARGET_OS" = xlinux; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DLINUX" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DLINUX" + fi + if test "x$OPENJDK_TARGET_OS" = xwindows; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DWINDOWS" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DWINDOWS" + fi + if test "x$OPENJDK_TARGET_OS" = xsolaris; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DSOLARIS" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DSOLARIS" + fi + if test "x$OPENJDK_TARGET_OS" = xaix; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DAIX -DPPC64" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DAIX -DPPC64" + fi + if test "x$OPENJDK_TARGET_OS" = xmacosx; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT" + # Setting these parameters makes it an error to link to macosx APIs that are + # newer than the given OS version and makes the linked binaries compatible even + # if built on a newer version of the OS. +@@ -1079,25 +1146,25 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_ + # The macro takes the version with no dots, ex: 1070 + # Let the flags variables get resolved in make for easier override on make + # command line. +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" + LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" + fi + if test "x$OPENJDK_TARGET_OS" = xbsd; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE" + fi + if test "x$DEBUG_LEVEL" = xrelease; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DNDEBUG" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DNDEBUG" + if test "x$OPENJDK_TARGET_OS" = xsolaris; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DTRIMMED" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DTRIMMED" + fi + else +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DDEBUG" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DDEBUG" + fi + +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY" +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'" + +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK \ ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK \ + -I${JDK_OUTPUTDIR}/include \ + -I${JDK_OUTPUTDIR}/include/$OPENJDK_TARGET_OS \ + -I${JDK_TOPDIR}/src/share/javavm/export \ +@@ -1106,12 +1173,12 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_ + -I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_API_DIR/native/common" + + # The shared libraries are compiled using the picflag. +- CFLAGS_JDKLIB="$CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA" +- CXXFLAGS_JDKLIB="$CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA " ++ CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA" ++ CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA " + + # Executable flags +- CFLAGS_JDKEXE="$CCXXFLAGS_JDK $CFLAGS_JDK" +- CXXFLAGS_JDKEXE="$CCXXFLAGS_JDK $CXXFLAGS_JDK" ++ CFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK" ++ CXXFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK" + + # Now this is odd. The JDK native libraries have to link against libjvm.so + # On 32-bit machines there is normally two distinct libjvm.so:s, client and server. +@@ -1196,13 +1263,13 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_ + ]) + + +-# TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE], +-# [RUN-IF-FALSE]) ++# TOOLCHAIN_C_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE], ++# [RUN-IF-FALSE]) + # ------------------------------------------------------------ +-# Check that the c and c++ compilers support an argument +-AC_DEFUN([TOOLCHAIN_COMPILER_CHECK_ARGUMENTS], ++# Check that the C compiler supports an argument ++AC_DEFUN([TOOLCHAIN_C_COMPILER_CHECK_ARGUMENTS], + [ +- AC_MSG_CHECKING([if compiler supports "$1"]) ++ AC_MSG_CHECKING([if the C compiler supports "$1"]) + supports=yes + + saved_cflags="$CFLAGS" +@@ -1213,6 +1280,23 @@ AC_DEFUN([TOOLCHAIN_COMPILER_CHECK_ARGUM + AC_LANG_POP([C]) + CFLAGS="$saved_cflags" + ++ AC_MSG_RESULT([$supports]) ++ if test "x$supports" = "xyes" ; then ++ m4_ifval([$2], [$2], [:]) ++ else ++ m4_ifval([$3], [$3], [:]) ++ fi ++]) ++ ++# TOOLCHAIN_CXX_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE], ++# [RUN-IF-FALSE]) ++# ------------------------------------------------------------ ++# Check that the C++ compiler supports an argument ++AC_DEFUN([TOOLCHAIN_CXX_COMPILER_CHECK_ARGUMENTS], ++[ ++ AC_MSG_CHECKING([if the C++ compiler supports "$1"]) ++ supports=yes ++ + saved_cxxflags="$CXXFLAGS" + CXXFLAGS="$CXXFLAG $1" + AC_LANG_PUSH([C++]) +@@ -1220,7 +1304,32 @@ AC_DEFUN([TOOLCHAIN_COMPILER_CHECK_ARGUM + [supports=no]) + AC_LANG_POP([C++]) + CXXFLAGS="$saved_cxxflags" ++ ++ AC_MSG_RESULT([$supports]) ++ if test "x$supports" = "xyes" ; then ++ m4_ifval([$2], [$2], [:]) ++ else ++ m4_ifval([$3], [$3], [:]) ++ fi ++]) + ++# TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE], ++# [RUN-IF-FALSE]) ++# ------------------------------------------------------------ ++# Check that the C and C++ compilers support an argument ++AC_DEFUN([TOOLCHAIN_COMPILER_CHECK_ARGUMENTS], ++[ ++ TOOLCHAIN_C_COMPILER_CHECK_ARGUMENTS([$1], ++ [C_COMP_SUPPORTS="yes"], ++ [C_COMP_SUPPORTS="no"]) ++ TOOLCHAIN_CXX_COMPILER_CHECK_ARGUMENTS([$1], ++ [CXX_COMP_SUPPORTS="yes"], ++ [CXX_COMP_SUPPORTS="no"]) ++ ++ AC_MSG_CHECKING([if both compilers support "$1"]) ++ supports=no ++ if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then supports=yes; fi ++ + AC_MSG_RESULT([$supports]) + if test "x$supports" = "xyes" ; then + m4_ifval([$2], [$2], [:]) +@@ -1311,3 +1420,20 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG], + AC_SUBST(JT_HOME) + AC_SUBST(JTREGEXE) + ]) ++ ++AC_DEFUN_ONCE([TOOLCHAIN_SETUP_GCC6_COMPILER_FLAGS], ++[ ++ # These flags are required for GCC 6 builds as undefined behaviour in OpenJDK code ++ # runs afoul of the more aggressive versions of these optimisations. ++ # Notably, value range propagation now assumes that the this pointer of C++ ++ # member functions is non-null. ++ NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks" ++ TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror], ++ [], [NO_DELETE_NULL_POINTER_CHECKS_CFLAG=""]) ++ AC_SUBST([NO_DELETE_NULL_POINTER_CHECKS_CFLAG]) ++ NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse" ++ TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$NO_LIFETIME_DSE_CFLAG -Werror], ++ [], [NO_LIFETIME_DSE_CFLAG=""]) ++ CFLAGS_JDK="${CFLAGS_JDK} ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}" ++ AC_SUBST([NO_LIFETIME_DSE_CFLAG]) ++]) diff --git a/debian/patches/hotspot-disable-werror.diff b/debian/patches/hotspot-disable-werror.diff new file mode 100644 index 0000000..45f7e9c --- /dev/null +++ b/debian/patches/hotspot-disable-werror.diff @@ -0,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 +@@ -198,7 +198,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 --git a/debian/patches/hotspot-libpath-aarch64.diff b/debian/patches/hotspot-libpath-aarch64.diff new file mode 100644 index 0000000..e32eedf --- /dev/null +++ b/debian/patches/hotspot-libpath-aarch64.diff @@ -0,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 --git a/debian/patches/hotspot-libpath-default.diff b/debian/patches/hotspot-libpath-default.diff new file mode 100644 index 0000000..92b60b4 --- /dev/null +++ b/debian/patches/hotspot-libpath-default.diff @@ -0,0 +1,37 @@ +# DP: Set the hotspot default libpath to ignore lib64 and add multiarch + +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 +@@ -328,10 +328,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. +Index: b/hotspot/make/linux/makefiles/vm.make +=================================================================== +--- 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 --git a/debian/patches/hotspot-mips-align.diff b/debian/patches/hotspot-mips-align.diff new file mode 100644 index 0000000..d65a5ca --- /dev/null +++ b/debian/patches/hotspot-mips-align.diff @@ -0,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 --git a/debian/patches/hotspot-no-march-i586.diff b/debian/patches/hotspot-no-march-i586.diff new file mode 100644 index 0000000..c031025 --- /dev/null +++ b/debian/patches/hotspot-no-march-i586.diff @@ -0,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/aarch64 = + ARCHFLAG/ia64 = diff --git a/debian/patches/hotspot-powerpcspe.diff b/debian/patches/hotspot-powerpcspe.diff new file mode 100644 index 0000000..7c50d71 --- /dev/null +++ b/debian/patches/hotspot-powerpcspe.diff @@ -0,0 +1,11 @@ +--- openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp ++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp +@@ -36,7 +36,7 @@ + + // Atomically copy 64 bits of data + static void atomic_copy64(volatile void *src, volatile void *dst) { +-#if defined(PPC32) ++#if defined(PPC32) && !defined(__NO_FPRS__) + double tmp; + asm volatile ("lfd %0, 0(%1)\n" + "stfd %0, 0(%2)\n" diff --git a/debian/patches/hotspot-set-compiler.diff b/debian/patches/hotspot-set-compiler.diff new file mode 100644 index 0000000..a2a6dfd --- /dev/null +++ b/debian/patches/hotspot-set-compiler.diff @@ -0,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 --git a/debian/patches/hotspot-warn-no-errformat.diff b/debian/patches/hotspot-warn-no-errformat.diff new file mode 100644 index 0000000..b0ab7c3 --- /dev/null +++ b/debian/patches/hotspot-warn-no-errformat.diff @@ -0,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 +@@ -198,7 +198,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 --git a/debian/patches/icc_loading_with_symlink.diff b/debian/patches/icc_loading_with_symlink.diff new file mode 100644 index 0000000..ed0937a --- /dev/null +++ b/debian/patches/icc_loading_with_symlink.diff @@ -0,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 <drazzib@debian.org> +Last-Update: 2012-05-18 +Bug-Debian: http://bugs.debian.org/641530 +Forwarded: not-yet + +--- a/jdk/src/share/classes/java/awt/color/ICC_Profile.java ++++ b/jdk/src/share/classes/java/awt/color/ICC_Profile.java +@@ -1833,9 +1833,6 @@ public class ICC_Profile implements Seri + dir = st.nextToken(); + fullPath = dir + File.separatorChar + fileName; + f = new File(fullPath); +- if (!isChildOf(f, dir)) { +- f = null; +- } + } + } + +@@ -1872,7 +1869,7 @@ public class ICC_Profile implements Seri + File.separatorChar + "lib" + File.separatorChar + "cmm"; + String fullPath = dir + File.separatorChar + fileName; + File f = new File(fullPath); +- return (f.isFile() && isChildOf(f, dir)) ? f : null; ++ return (f.isFile()) ? f : null; + } + + /** diff --git a/debian/patches/icedtea-4953367.patch b/debian/patches/icedtea-4953367.patch new file mode 100644 index 0000000..9c083cd --- /dev/null +++ b/debian/patches/icedtea-4953367.patch @@ -0,0 +1,21 @@ +http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4953367 + +--- a/jdk/src/solaris/native/java/lang/java_props_md.c ++++ b/jdk/src/solaris/native/java/lang/java_props_md.c +@@ -612,6 +612,7 @@ GetJavaProperties(JNIEnv *env) + sprops.path_separator = ":"; + sprops.line_separator = "\n"; + ++#ifndef __linux__ + #if !defined(_ALLBSD_SOURCE) + /* Append CDE message and resource search path to NLSPATH and + * XFILESEARCHPATH, in order to pick localized message for +@@ -620,7 +621,7 @@ GetJavaProperties(JNIEnv *env) + setPathEnvironment("NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat"); + setPathEnvironment("XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt"); + #endif +- ++#endif + + #ifdef MACOSX + setProxyProperties(&sprops); diff --git a/debian/patches/icedtea-override-redirect-compiz.patch b/debian/patches/icedtea-override-redirect-compiz.patch new file mode 100644 index 0000000..a90b8ef --- /dev/null +++ b/debian/patches/icedtea-override-redirect-compiz.patch @@ -0,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 --git a/debian/patches/icedtea-sound.diff b/debian/patches/icedtea-sound.diff new file mode 100644 index 0000000..d74f2be --- /dev/null +++ b/debian/patches/icedtea-sound.diff @@ -0,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 --git a/debian/patches/include-all-srcs.diff b/debian/patches/include-all-srcs.diff new file mode 100644 index 0000000..e37769c --- /dev/null +++ b/debian/patches/include-all-srcs.diff @@ -0,0 +1,57 @@ +Description: Include all source files in src.zip +Origin: vendor, http://pkgs.fedoraproject.org/cgit/java-1.8.0-openjdk.git/plain/include-all-srcs.patch +Forwarded: not-needed +--- a/jdk/make/CreateJars.gmk ++++ b/jdk/make/CreateJars.gmk +@@ -580,38 +580,12 @@ $(eval $(call SetupArchive,BUILD_CT_SYM, + ########################################################################################## + + SRC_ZIP_INCLUDES = \ +- com/sun/corba \ +- com/sun/image/codec/jpeg \ +- com/sun/imageio \ +- com/sun/java_cup \ +- com/sun/javadoc \ +- com/sun/java/swing \ +- com/sun/jmx \ +- com/sun/naming \ +- com/sun/org/apache \ +- com/sun/security/auth \ +- com/sun/security/jgss \ +- com/sun/source \ ++ com \ + java \ +- javax/accessibility \ +- javax/annotation \ +- javax/imageio \ +- javax/lang \ +- javax/management \ +- javax/naming \ +- javax/print \ +- javax/rmi \ +- javax/script \ +- javax/security \ +- javax/sound \ +- javax/sql \ +- javax/swing \ +- javax/tools \ +- javax/xml \ +- org/ietf \ +- org/omg \ +- org/w3c/dom \ +- org/xml/sax \ ++ javax \ ++ jdk \ ++ org \ ++ sun \ + # + + SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes +@@ -643,7 +617,6 @@ $(eval $(call MakeDir, $(IMAGES_OUTPUTDI + $(eval $(call SetupZipArchive,BUILD_SRC_ZIP, \ + SRC := $(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src, \ + INCLUDES := $(SRC_ZIP_INCLUDES) launcher, \ +- EXCLUDES := javax/swing/beaninfo, \ + SUFFIXES := .java .c .h, \ + ZIP := $(IMAGES_OUTPUTDIR)/src.zip, \ + EXTRA_DEPS := $(LAUNCHER_ZIP_SRC))) diff --git a/debian/patches/jamvm-fix.diff b/debian/patches/jamvm-fix.diff new file mode 100644 index 0000000..93e26ca --- /dev/null +++ b/debian/patches/jamvm-fix.diff @@ -0,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 <rob@jamvm.org.uk>. ++ * Copyright (C) 2011, 2013, 2014, 2015 ++ * Robert Lougher <rob@jamvm.org.uk>. + * + * This file is part of JamVM. + * +@@ -23,7 +23,7 @@ + #define CLASSLIB_CLASS_SPECIAL JTHREAD + + #if OPENJDK_VERSION == 8 +-#define CLASSLIB_CLASS_PAD_SIZE 10*sizeof(Object*)+1*sizeof(int) ++#define CLASSLIB_CLASS_PAD_SIZE 11*sizeof(Object*)+1*sizeof(int) + #elif OPENJDK_VERSION == 7 + #define CLASSLIB_CLASS_PAD_SIZE 18*sizeof(Object*)+2*sizeof(int) + #else +diff -u -ur a/src/os/linux/mips/callNative.S b/src/os/linux/mips/callNative.S +--- jamvm/jamvm/src/os/linux/mips/callNative.S ++++ jamvm/jamvm/src/os/linux/mips/callNative.S +@@ -157,8 +157,7 @@ + + ret_double: + #ifdef __mips_hard_float +- swc1 $f0,0($8) +- swc1 $f1,4($8) ++ sdc1 $f0,0($8) + addu $8,8 + j return + #endif diff --git a/debian/patches/java-access-bridge-security.patch b/debian/patches/java-access-bridge-security.patch new file mode 100644 index 0000000..2e5d0e1 --- /dev/null +++ b/debian/patches/java-access-bridge-security.patch @@ -0,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 --git a/debian/patches/javadoc-sort-enum-and-annotation-types.diff b/debian/patches/javadoc-sort-enum-and-annotation-types.diff new file mode 100644 index 0000000..56e4d12 --- /dev/null +++ b/debian/patches/javadoc-sort-enum-and-annotation-types.diff @@ -0,0 +1,21 @@ +Description: Sort the enums and the annotations in the package-tree.html files
+Author: Emmanuel Bourg <ebourg@apache.org>
+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<List<ClassDoc>> it = subclasses.values().iterator(); it.hasNext(); ) { + Collections.sort(it.next()); + } ++ ++ Collections.sort(baseEnums); ++ for (Iterator<List<ClassDoc>> it = subEnums.values().iterator(); it.hasNext(); ) { ++ Collections.sort(it.next()); ++ } ++ Collections.sort(baseAnnotationTypes); ++ for (Iterator<List<ClassDoc>> it = subAnnotationTypes.values().iterator(); it.hasNext(); ) { ++ Collections.sort(it.next()); ++ } + } + + /** diff --git a/debian/patches/jdk-841269-filechooser.patch b/debian/patches/jdk-841269-filechooser.patch new file mode 100644 index 0000000..32f52c4 --- /dev/null +++ b/debian/patches/jdk-841269-filechooser.patch @@ -0,0 +1,26 @@ +--- openjdk/jdk/src/share/classes/sun/awt/shell/ShellFolder.java 2016-10-19 11:41:05.669056845 +0530
++++ openjdk/jdk/src/share/classes/sun/awt/shell/ShellFolder.java 2016-10-19 11:44:37.957056845 +0530
+@@ -30,6 +30,10 @@
+ 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 @@
+ * @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 --git a/debian/patches/jdk-derived-font-size.diff b/debian/patches/jdk-derived-font-size.diff new file mode 100644 index 0000000..7934979 --- /dev/null +++ b/debian/patches/jdk-derived-font-size.diff @@ -0,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 --git a/debian/patches/jdk-freetypeScaler-crash.diff b/debian/patches/jdk-freetypeScaler-crash.diff new file mode 100644 index 0000000..4d68018 --- /dev/null +++ b/debian/patches/jdk-freetypeScaler-crash.diff @@ -0,0 +1,129 @@ +Description: + + Fixing the bad JNI code in the font manager code. Two issues: + + o The JNIEnv is unique to the thread. It cannot be saved by one thread and + reused by another. Use GetEnv instead. + + o The 'font2D' jobject needs to be converted into a global reference because + its lifetime exceeds the lifetime of a native method call. + +Evaluation: + +Appropriately register/free everything with the garbage collector. + +Fix: + +# HG changeset patch +# User martin +# Date 1224202830 25200 +# Node ID 3c9d6001d8a90698a3540a2a483717f26a98db78 +# Parent 68730f05449cd4f39ce1cb82adc6c4e57f87554f +Crash in freetypeScaler.c due to insufficient GC protection +Summary: NewGlobalRef/DeleteGlobalRef as needed. +Reviewed-by: +Contributed-by: yamauchi@google.com + +--- a/jdk/make/mapfiles/libfontmanager/mapfile-vers.openjdk ++++ b/jdk/make/mapfiles/libfontmanager/mapfile-vers.openjdk +@@ -29,6 +29,7 @@ + + SUNWprivate_1.1 { + global: ++ JNI_OnLoad; + getSunFontIDs; + newLayoutTableCache; + freeLayoutTableCache; +--- a/jdk/src/share/native/sun/font/freetypeScaler.c ++++ b/jdk/src/share/native/sun/font/freetypeScaler.c +@@ -48,16 +48,6 @@ + #define ROUND(x) ((int) (x+0.5)) + + typedef struct { +- /* Important note: +- JNI forbids sharing same env between different threads. +- We are safe, because pointer is overwritten every time we get into +- JNI call (see setupFTContext). +- +- Pointer is used by font data reading callbacks +- such as ReadTTFontFileFunc. +- +- NB: We may consider switching to JNI_GetEnv. */ +- JNIEnv* env; + FT_Library library; + FT_Face face; + jobject font2D; +@@ -90,6 +80,13 @@ int z_verbose; + void z_error(char *s) {} + #endif + ++static JavaVM* jvm = NULL; ++ ++JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { ++ jvm = vm; ++ return JNI_VERSION_1_2; ++} ++ + /**************** Error handling utilities *****************/ + + static jmethodID invalidateScalerMID; +@@ -120,6 +117,10 @@ static void freeNativeResources(JNIEnv * + FT_Done_Face(scalerInfo->face); + FT_Done_FreeType(scalerInfo->library); + ++ if (scalerInfo->font2D != NULL) { ++ (*env)->DeleteGlobalRef(env, scalerInfo->font2D); ++ } ++ + if (scalerInfo->directBuffer != NULL) { + (*env)->DeleteGlobalRef(env, scalerInfo->directBuffer); + } +@@ -152,8 +153,8 @@ static unsigned long ReadTTFontFileFunc( + unsigned char* destBuffer, + unsigned long numBytes) + { ++ JNIEnv* env = (JNIEnv*) JNU_GetEnv(jvm, JNI_VERSION_1_2); + FTScalerInfo *scalerInfo = (FTScalerInfo *) stream->pathname.pointer; +- JNIEnv* env = scalerInfo->env; + jobject bBuffer; + int bread = 0; + +@@ -229,8 +230,7 @@ Java_sun_font_FreetypeFontScaler_initNat + if (scalerInfo == NULL) + return 0; + +- scalerInfo->env = env; +- scalerInfo->font2D = font2D; ++ scalerInfo->font2D = (*env)->NewGlobalRef(env, font2D); + scalerInfo->fontDataOffset = 0; + scalerInfo->fontDataLength = 0; + scalerInfo->fileSize = filesize; +@@ -247,6 +247,7 @@ Java_sun_font_FreetypeFontScaler_initNat + */ + error = FT_Init_FreeType(&scalerInfo->library); + if (error) { ++ (*env)->DeleteGlobalRef(env, scalerInfo->font2D); + free(scalerInfo); + return 0; + } +@@ -317,6 +318,7 @@ Java_sun_font_FreetypeFontScaler_initNat + } + if (scalerInfo->fontData != NULL) + free(scalerInfo->fontData); ++ (*env)->DeleteGlobalRef(env, scalerInfo->font2D); + free(scalerInfo); + return 0; + } +@@ -377,8 +379,10 @@ static int setupFTContext(JNIEnv *env, + FTScalerContext *context) { + int errCode = 0; + +- scalerInfo->env = env; +- scalerInfo->font2D = font2D; ++ if (scalerInfo->font2D != NULL) { ++ (*env)->DeleteGlobalRef(env, scalerInfo->font2D); ++ } ++ scalerInfo->font2D = (*env)->NewGlobalRef(env, font2D); + + if (context != NULL) { + FT_Set_Transform(scalerInfo->face, &context->transform, NULL); diff --git a/debian/patches/jdk-getAccessibleValue.diff b/debian/patches/jdk-getAccessibleValue.diff new file mode 100644 index 0000000..f2b95c1 --- /dev/null +++ b/debian/patches/jdk-getAccessibleValue.diff @@ -0,0 +1,272 @@ +--- a/jdk/src/share/classes/javax/swing/JList.java ++++ b/jdk/src/share/classes/javax/swing/JList.java +@@ -3371,7 +3371,12 @@ public class JList<E> extends JComponent + } + + public AccessibleAction getAccessibleAction() { +- return getCurrentAccessibleContext().getAccessibleAction(); ++ AccessibleContext ac = getCurrentAccessibleContext(); ++ if (ac != null) { ++ return ac.getAccessibleAction(); ++ } else { ++ return null; ++ } + } + + /** +@@ -3387,15 +3392,30 @@ public class JList<E> extends JComponent + } + + 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/JTree.java ++++ b/jdk/src/share/classes/javax/swing/JTree.java +@@ -4962,7 +4962,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; + } +@@ -4977,7 +4977,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; + } +@@ -4992,7 +4992,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 +@@ -1083,7 +1083,12 @@ public class JTableHeader extends JCompo + } + + public AccessibleAction getAccessibleAction() { +- return getCurrentAccessibleContext().getAccessibleAction(); ++ AccessibleContext ac = getCurrentAccessibleContext(); ++ if (ac != null) { ++ return ac.getAccessibleAction(); ++ } else { ++ return null; ++ } + } + + /** +@@ -1099,15 +1104,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 +@@ -8218,7 +8218,12 @@ public class JTable extends JComponent i + * @return the <code>AccessibleAction</code>, or <code>null</code> + */ + public AccessibleAction getAccessibleAction() { +- return getCurrentAccessibleContext().getAccessibleAction(); ++ AccessibleContext ac = getCurrentAccessibleContext(); ++ if (ac != null) { ++ return ac.getAccessibleAction(); ++ } else { ++ return null; ++ } + } + + /** +@@ -8240,7 +8245,12 @@ public class JTable extends JComponent i + * <code>null</code> + */ + public AccessibleSelection getAccessibleSelection() { +- return getCurrentAccessibleContext().getAccessibleSelection(); ++ AccessibleContext ac = getCurrentAccessibleContext(); ++ if (ac != null) { ++ return ac.getAccessibleSelection(); ++ } else { ++ return null; ++ } + } + + /** +@@ -8250,7 +8260,12 @@ public class JTable extends JComponent i + * @return the <code>AccessibleText</code>, or <code>null</code> + */ + public AccessibleText getAccessibleText() { +- return getCurrentAccessibleContext().getAccessibleText(); ++ AccessibleContext ac = getCurrentAccessibleContext(); ++ if (ac != null) { ++ return ac.getAccessibleText(); ++ } else { ++ return null; ++ } + } + + /** +@@ -8260,7 +8275,12 @@ public class JTable extends JComponent i + * @return the <code>AccessibleValue</code>, or <code>null</code> + */ + public AccessibleValue getAccessibleValue() { +- return getCurrentAccessibleContext().getAccessibleValue(); ++ AccessibleContext ac = getCurrentAccessibleContext(); ++ if (ac != null) { ++ return ac.getAccessibleValue(); ++ } else { ++ return null; ++ } + } + + +@@ -9019,7 +9039,12 @@ public class JTable extends JComponent i + * @return the <code>AccessibleAction</code>, or <code>null</code> + */ + public AccessibleAction getAccessibleAction() { +- return getCurrentAccessibleContext().getAccessibleAction(); ++ AccessibleContext ac = getCurrentAccessibleContext(); ++ if (ac != null) { ++ return ac.getAccessibleAction(); ++ } else { ++ return null; ++ } + } + + /** +@@ -9041,7 +9066,12 @@ public class JTable extends JComponent i + * <code>null</code> + */ + public AccessibleSelection getAccessibleSelection() { +- return getCurrentAccessibleContext().getAccessibleSelection(); ++ AccessibleContext ac = getCurrentAccessibleContext(); ++ if (ac != null) { ++ return ac.getAccessibleSelection(); ++ } else { ++ return null; ++ } + } + + /** +@@ -9051,7 +9081,12 @@ public class JTable extends JComponent i + * @return the <code>AccessibleText</code>, or <code>null</code> + */ + public AccessibleText getAccessibleText() { +- return getCurrentAccessibleContext().getAccessibleText(); ++ AccessibleContext ac = getCurrentAccessibleContext(); ++ if (ac != null) { ++ return ac.getAccessibleText(); ++ } else { ++ return null; ++ } + } + + /** +@@ -9061,7 +9096,12 @@ public class JTable extends JComponent i + * @return the <code>AccessibleValue</code>, or <code>null</code> + */ + public AccessibleValue getAccessibleValue() { +- return getCurrentAccessibleContext().getAccessibleValue(); ++ AccessibleContext ac = getCurrentAccessibleContext(); ++ if (ac != null) { ++ return ac.getAccessibleValue(); ++ } else { ++ return null; ++ } + } + + +--- a/jdk/src/windows/classes/com/sun/java/accessibility/AccessBridge.java ++++ b/jdk/src/windows/classes/com/sun/java/accessibility/AccessBridge.java +@@ -6509,7 +6509,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; + } +@@ -6524,7 +6524,7 @@ final public class AccessBridge extends + public AccessibleText getAccessibleText() { + AccessibleContext ac = getCurrentAccessibleContext(); + if (ac != null) { +- return getCurrentAccessibleContext().getAccessibleText(); ++ return ac.getAccessibleText(); + } else { + return null; + } +@@ -6539,7 +6539,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 --git a/debian/patches/jdk-ppc64el-S8165231.diff b/debian/patches/jdk-ppc64el-S8165231.diff new file mode 100644 index 0000000..0e4ce3f --- /dev/null +++ b/debian/patches/jdk-ppc64el-S8165231.diff @@ -0,0 +1,48 @@ +# HG changeset patch +# User horii +# Date 1473905514 14400 +# Node ID 8d16f74380a78eb76cb33183a64440316393903e +# Parent be698ac288484ab140715ee29ed9335e6ea8a33b +8165231: java.nio.Bits.unaligned() doesn't return true on ppc +Reviewed-by: simonis, coffeys + +diff -r be698ac28848 -r 8d16f74380a7 src/share/classes/java/nio/Bits.java +--- openjdk/jdk/src/share/classes/java/nio/Bits.java Fri Sep 23 18:19:23 2016 +0000 ++++ openjdk/jdk/src/share/classes/java/nio/Bits.java Wed Sep 14 22:11:54 2016 -0400 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -614,7 +614,8 @@ + String arch = AccessController.doPrivileged( + new sun.security.action.GetPropertyAction("os.arch")); + unaligned = arch.equals("i386") || arch.equals("x86") +- || arch.equals("amd64") || arch.equals("x86_64"); ++ || arch.equals("amd64") || arch.equals("x86_64") ++ || arch.equals("ppc64") || arch.equals("ppc64le"); + unalignedKnown = true; + return unaligned; + } +diff -r be698ac28848 -r 8d16f74380a7 src/share/classes/sun/security/provider/ByteArrayAccess.java +--- openjdk/jdk/src/share/classes/sun/security/provider/ByteArrayAccess.java Fri Sep 23 18:19:23 2016 +0000 ++++ openjdk/jdk/src/share/classes/sun/security/provider/ByteArrayAccess.java Wed Sep 14 22:11:54 2016 -0400 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -94,7 +94,7 @@ + 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("x86_64") || arch.equals("ppc64") || arch.equals("ppc64le"); + } + + /** + diff --git a/debian/patches/jdk-ppc64el-S8170153.patch b/debian/patches/jdk-ppc64el-S8170153.patch new file mode 100644 index 0000000..d2e05a9 --- /dev/null +++ b/debian/patches/jdk-ppc64el-S8170153.patch @@ -0,0 +1,44 @@ + +# 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 + +diff -r 71215ac21d10 -r 80927e772b9a make/lib/CoreLibraries.gmk +--- openjdk/jdk/make/lib/CoreLibraries.gmk Thu Dec 15 09:03:36 2016 +0100 ++++ openjdk/jdk/make/lib/CoreLibraries.gmk Thu Dec 15 07:58:15 2016 -0500 +@@ -27,10 +27,18 @@ + + ########################################################################################## + +-BUILD_LIBFDLIBM_OPTIMIZATION := HIGH ++BUILD_LIBFDLIBM_OPTIMIZATION := NONE + +-ifneq ($(OPENJDK_TARGET_OS), solaris) +- BUILD_LIBFDLIBM_OPTIMIZATION := NONE ++ifeq ($(OPENJDK_TARGET_OS), solaris) ++ BUILD_LIBFDLIBM_OPTIMIZATION := HIGH ++endif ++ ++ifeq ($(OPENJDK_TARGET_OS), linux) ++ ifeq ($(OPENJDK_TARGET_CPU), ppc64) ++ BUILD_LIBFDLIBM_OPTIMIZATION := HIGH ++ else ifeq ($(OPENJDK_TARGET_CPU), ppc64le) ++ BUILD_LIBFDLIBM_OPTIMIZATION := HIGH ++ endif + endif + + ifneq ($(OPENJDK_TARGET_OS), macosx) +@@ -44,6 +52,8 @@ + -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include, \ + CFLAGS_windows_debug := -DLOGGING, \ + CFLAGS_aix := -qfloat=nomaf, \ ++ CFLAGS_linux_ppc64 := -ffp-contract=off, \ ++ CFLAGS_linux_ppc64le := -ffp-contract=off, \ + ARFLAGS := $(ARFLAGS), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + diff --git a/debian/patches/jdk-pulseaudio.diff b/debian/patches/jdk-pulseaudio.diff new file mode 100644 index 0000000..06263ab --- /dev/null +++ b/debian/patches/jdk-pulseaudio.diff @@ -0,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 --git a/debian/patches/jdk-target-arch-define.diff b/debian/patches/jdk-target-arch-define.diff new file mode 100644 index 0000000..22a2b1f --- /dev/null +++ b/debian/patches/jdk-target-arch-define.diff @@ -0,0 +1,19 @@ +# DP: Define _alpha_ / _sh_ preprocessor macros instead of alpha / sh. + +--- a/common/autoconf/toolchain.m4 ++++ b/common/autoconf/toolchain.m4 +@@ -1163,7 +1163,13 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_ + COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DDEBUG" + fi + +- COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY" ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"'" ++ case "$OPENJDK_TARGET_CPU_LEGACY" in ++ alpha*|sh*) ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_${OPENJDK_TARGET_CPU_LEGACY}_";; ++ *) ++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D$OPENJDK_TARGET_CPU_LEGACY" ++ esac + COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'" + + COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK \ diff --git a/debian/patches/jexec.diff.in b/debian/patches/jexec.diff.in new file mode 100644 index 0000000..5f343a1 --- /dev/null +++ b/debian/patches/jexec.diff.in @@ -0,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 --git a/debian/patches/kfreebsd-support-hotspot.diff b/debian/patches/kfreebsd-support-hotspot.diff new file mode 100644 index 0000000..e4ffdcc --- /dev/null +++ b/debian/patches/kfreebsd-support-hotspot.diff @@ -0,0 +1,827 @@ +Index: b/hotspot/src/os/linux/vm/decoder_linux.cpp +=================================================================== +--- a/hotspot/src/os/linux/vm/decoder_linux.cpp ++++ b/hotspot/src/os/linux/vm/decoder_linux.cpp +@@ -22,6 +22,7 @@ + * + */ + ++#include "utilities/globalDefinitions.hpp" + #include "prims/jvm.h" + #include "utilities/decoder_elf.hpp" + +Index: b/hotspot/src/os/linux/vm/attachListener_linux.cpp +=================================================================== +--- a/hotspot/src/os/linux/vm/attachListener_linux.cpp ++++ b/hotspot/src/os/linux/vm/attachListener_linux.cpp +@@ -39,6 +39,10 @@ + #define UNIX_PATH_MAX sizeof(((struct sockaddr_un *)0)->sun_path) + #endif + ++#if defined(__FreeBSD_kernel__) ++#include <sys/ucred.h> ++#endif ++ + // The attach mechanism on Linux uses a UNIX domain socket. An attach listener + // thread is created at startup or is created on-demand via a signal from + // the client tool. The attach listener creates a socket and binds it to a file +@@ -337,16 +341,26 @@ LinuxAttachOperation* LinuxAttachListene + + // get the credentials of the peer and check the effective uid/guid + // - check with jeff on this. ++#if defined(LOCAL_PEERCRED) /* GNU/kFreeBSD */ ++ struct xucred cred_info; ++ socklen_t optlen = sizeof(cred_info); ++ if (::getsockopt(s, SOL_SOCKET, LOCAL_PEERCRED, (void*)&cred_info, &optlen) == -1) { ++#else + struct ucred cred_info; + socklen_t optlen = sizeof(cred_info); + if (::getsockopt(s, SOL_SOCKET, SO_PEERCRED, (void*)&cred_info, &optlen) == -1) { ++#endif + ::close(s); + continue; + } + uid_t euid = geteuid(); + gid_t egid = getegid(); + ++#if defined(LOCAL_PEERCRED) /* GNU/kFreeBSD */ ++ if (cred_info.cr_uid != euid || cred_info.cr_gid != egid) { ++#else + if (cred_info.uid != euid || cred_info.gid != egid) { ++#endif + ::close(s); + continue; + } +Index: b/hotspot/src/os/linux/vm/jvm_linux.cpp +=================================================================== +--- a/hotspot/src/os/linux/vm/jvm_linux.cpp ++++ b/hotspot/src/os/linux/vm/jvm_linux.cpp +@@ -169,7 +169,9 @@ struct siglabel siglabels[] = { + "WINCH", SIGWINCH, /* Window size change (4.3 BSD, Sun). */ + "POLL", SIGPOLL, /* Pollable event occurred (System V). */ + "IO", SIGIO, /* I/O now possible (4.2 BSD). */ ++#ifdef SIGPWR + "PWR", SIGPWR, /* Power failure restart (System V). */ ++#endif + #ifdef SIGSYS + "SYS", SIGSYS /* Bad system call. Only on some Linuxen! */ + #endif +Index: b/hotspot/src/os/linux/vm/os_linux.cpp +=================================================================== +--- a/hotspot/src/os/linux/vm/os_linux.cpp ++++ b/hotspot/src/os/linux/vm/os_linux.cpp +@@ -22,6 +22,7 @@ + * + */ + ++#include "utilities/globalDefinitions.hpp" + // no precompiled headers + #include "classfile/classLoader.hpp" + #include "classfile/systemDictionary.hpp" +@@ -92,8 +93,16 @@ + # include <semaphore.h> + # include <fcntl.h> + # include <string.h> ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) ++# include <sys/param.h> ++# include <sys/sysctl.h> ++#ifndef ETIME ++# define ETIME ETIMEDOUT ++#endif ++#else + # include <syscall.h> + # include <sys/sysinfo.h> ++#endif + # include <gnu/libc-version.h> + # include <sys/ipc.h> + # include <sys/shm.h> +@@ -169,11 +178,22 @@ julong os::available_memory() { + } + + julong os::Linux::available_memory() { ++#ifndef __FreeBSD_kernel__ + // values in struct sysinfo are "unsigned long" + struct sysinfo si; + sysinfo(&si); + + return (julong)si.freeram * si.mem_unit; ++#else ++ int mib[2] = {CTL_HW, HW_USERMEM}, mem; ++ size_t len; ++ len = sizeof(mem); ++ if (sysctl(mib, 2, &mem, &len, NULL, 0) == 0) { ++ return (julong) mem; ++ } else { ++ return 0; ++ } ++#endif + } + + julong os::physical_memory() { +@@ -2174,18 +2194,22 @@ void os::print_memory_info(outputStream* + st->print("Memory:"); + st->print(" %dk page", os::vm_page_size()>>10); + ++#ifndef __FreeBSD_kernel__ + // values in struct sysinfo are "unsigned long" + struct sysinfo si; + sysinfo(&si); ++#endif + + st->print(", physical " UINT64_FORMAT "k", + os::physical_memory() >> 10); + st->print("(" UINT64_FORMAT "k free)", + os::available_memory() >> 10); ++#ifndef __FreeBSD_kernel__ + st->print(", swap " UINT64_FORMAT "k", + ((jlong)si.totalswap * si.mem_unit) >> 10); + st->print("(" UINT64_FORMAT "k free)", + ((jlong)si.freeswap * si.mem_unit) >> 10); ++#endif + st->cr(); + } + +Index: b/hotspot/src/os/linux/vm/osThread_linux.cpp +=================================================================== +--- a/hotspot/src/os/linux/vm/osThread_linux.cpp ++++ b/hotspot/src/os/linux/vm/osThread_linux.cpp +@@ -22,6 +22,7 @@ + * + */ + ++#include "utilities/globalDefinitions.hpp" + // no precompiled headers + #include "runtime/mutex.hpp" + #include "runtime/osThread.hpp" +Index: b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp +=================================================================== +--- a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp ++++ b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp +@@ -22,6 +22,7 @@ + * + */ + ++#include "utilities/globalDefinitions.hpp" + // no precompiled headers + #include "asm/macroAssembler.hpp" + #include "classfile/classLoader.hpp" +@@ -74,6 +75,7 @@ + # include <ucontext.h> + # include <fpu_control.h> + ++#ifdef __linux__ + #ifdef AMD64 + #define REG_SP REG_RSP + #define REG_PC REG_RIP +@@ -87,6 +89,54 @@ + #define SPELL_REG_SP "esp" + #define SPELL_REG_FP "ebp" + #endif // AMD64 ++#endif ++ ++#if defined(__FreeBSD_kernel__) ++#define context_trapno uc_mcontext.mc_trapno ++#ifdef AMD64 ++#define SPELL_REG_SP "rsp" ++#define SPELL_REG_FP "rbp" ++#define context_sp uc_mcontext.mc_rsp ++#define context_pc uc_mcontext.mc_rip ++#define context_fp uc_mcontext.mc_rbp ++#define context_rip uc_mcontext.mc_rip ++#define context_rsp uc_mcontext.mc_rsp ++#define context_rbp uc_mcontext.mc_rbp ++#define context_flags uc_mcontext.mc_flags ++#define context_err uc_mcontext.mc_err ++#define context_rax uc_mcontext.mc_rax ++#define context_rbx uc_mcontext.mc_rbx ++#define context_rcx uc_mcontext.mc_rcx ++#define context_rdx uc_mcontext.mc_rdx ++#define context_rsi uc_mcontext.mc_rsi ++#define context_rdi uc_mcontext.mc_rdi ++#define context_r8 uc_mcontext.mc_r8 ++#define context_r9 uc_mcontext.mc_r9 ++#define context_r10 uc_mcontext.mc_r10 ++#define context_r11 uc_mcontext.mc_r11 ++#define context_r12 uc_mcontext.mc_r12 ++#define context_r13 uc_mcontext.mc_r13 ++#define context_r14 uc_mcontext.mc_r14 ++#define context_r15 uc_mcontext.mc_r15 ++#else ++#define SPELL_REG_SP "esp" ++#define SPELL_REG_FP "ebp" ++#define context_sp uc_mcontext.mc_esp ++#define context_pc uc_mcontext.mc_eip ++#define context_fp uc_mcontext.mc_ebp ++#define context_eip uc_mcontext.mc_eip ++#define context_esp uc_mcontext.mc_esp ++#define context_eax uc_mcontext.mc_eax ++#define context_ebx uc_mcontext.mc_ebx ++#define context_ecx uc_mcontext.mc_ecx ++#define context_edx uc_mcontext.mc_edx ++#define context_ebp uc_mcontext.mc_ebp ++#define context_esi uc_mcontext.mc_esi ++#define context_edi uc_mcontext.mc_edi ++#define context_eflags uc_mcontext.mc_eflags ++#define context_trapno uc_mcontext.mc_trapno ++#endif // AMD64 ++#endif + + PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC + +@@ -118,15 +168,27 @@ void os::initialize_thread(Thread* thr) + } + + address os::Linux::ucontext_get_pc(ucontext_t * uc) { ++#if defined(__FreeBSD_kernel__) ++ return (address)uc->context_pc; ++#else + return (address)uc->uc_mcontext.gregs[REG_PC]; ++#endif + } + + intptr_t* os::Linux::ucontext_get_sp(ucontext_t * uc) { ++#if defined(__FreeBSD_kernel__) ++ return (intptr_t*)uc->context_sp; ++#else + return (intptr_t*)uc->uc_mcontext.gregs[REG_SP]; ++#endif + } + + intptr_t* os::Linux::ucontext_get_fp(ucontext_t * uc) { ++#if defined(__FreeBSD_kernel__) ++ return (intptr_t*)uc->context_fp; ++#else + return (intptr_t*)uc->uc_mcontext.gregs[REG_FP]; ++#endif + } + + // For Forte Analyzer AsyncGetCallTrace profiling support - thread +@@ -278,7 +340,11 @@ JVM_handle_linux_signal(int sig, + pc = (address) os::Linux::ucontext_get_pc(uc); + + if (StubRoutines::is_safefetch_fault(pc)) { ++#if defined(__FreeBSD_kernel__) ++ uc->context_pc = intptr_t(StubRoutines::continuation_for_safefetch_fault(pc)); ++#else + uc->uc_mcontext.gregs[REG_PC] = intptr_t(StubRoutines::continuation_for_safefetch_fault(pc)); ++#endif + return 1; + } + +@@ -443,7 +509,11 @@ JVM_handle_linux_signal(int sig, + // Furthermore, a false-positive should be harmless. + if (UnguardOnExecutionViolation > 0 && + (sig == SIGSEGV || sig == SIGBUS) && ++#if defined(__FreeBSD_kernel__) ++ uc->context_trapno == trap_page_fault) { ++#else + uc->uc_mcontext.gregs[REG_TRAPNO] == trap_page_fault) { ++#endif + int page_size = os::vm_page_size(); + address addr = (address) info->si_addr; + address pc = os::Linux::ucontext_get_pc(uc); +@@ -513,7 +583,11 @@ JVM_handle_linux_signal(int sig, + // save all thread context in case we need to restore it + if (thread != NULL) thread->set_saved_exception_pc(pc); + ++#if defined(__FreeBSD_kernel__) ++ uc->context_pc = (intptr_t)stub; ++#else + uc->uc_mcontext.gregs[REG_PC] = (greg_t)stub; ++#endif + return true; + } + +@@ -765,6 +839,7 @@ void os::print_context(outputStream *st, + + ucontext_t *uc = (ucontext_t*)context; + st->print_cr("Registers:"); ++#ifdef __linux__ + #ifdef AMD64 + st->print( "RAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RAX]); + st->print(", RBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RBX]); +@@ -807,6 +882,48 @@ void os::print_context(outputStream *st, + st->print(", EFLAGS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EFL]); + st->print(", CR2=" INTPTR_FORMAT, uc->uc_mcontext.cr2); + #endif // AMD64 ++#elif defined(__FreeBSD_kernel__) ++#ifdef AMD64 ++ st->print( "RAX=" INTPTR_FORMAT, uc->context_rax); ++ st->print(", RBX=" INTPTR_FORMAT, uc->context_rbx); ++ st->print(", RCX=" INTPTR_FORMAT, uc->context_rcx); ++ st->print(", RDX=" INTPTR_FORMAT, uc->context_rdx); ++ st->cr(); ++ st->print( "RSP=" INTPTR_FORMAT, uc->context_rsp); ++ st->print(", RBP=" INTPTR_FORMAT, uc->context_rbp); ++ st->print(", RSI=" INTPTR_FORMAT, uc->context_rsi); ++ st->print(", RDI=" INTPTR_FORMAT, uc->context_rdi); ++ st->cr(); ++ st->print( "R8 =" INTPTR_FORMAT, uc->context_r8); ++ st->print(", R9 =" INTPTR_FORMAT, uc->context_r9); ++ st->print(", R10=" INTPTR_FORMAT, uc->context_r10); ++ st->print(", R11=" INTPTR_FORMAT, uc->context_r11); ++ st->cr(); ++ st->print( "R12=" INTPTR_FORMAT, uc->context_r12); ++ st->print(", R13=" INTPTR_FORMAT, uc->context_r13); ++ st->print(", R14=" INTPTR_FORMAT, uc->context_r14); ++ st->print(", R15=" INTPTR_FORMAT, uc->context_r15); ++ st->cr(); ++ st->print( "RIP=" INTPTR_FORMAT, uc->context_rip); ++ st->print(", EFLAGS=" INTPTR_FORMAT, uc->context_flags); ++ st->print(", ERR=" INTPTR_FORMAT, uc->context_err); ++ st->cr(); ++ st->print(" TRAPNO=" INTPTR_FORMAT, uc->context_trapno); ++#else ++ st->print( "EAX=" INTPTR_FORMAT, uc->context_eax); ++ st->print(", EBX=" INTPTR_FORMAT, uc->context_ebx); ++ st->print(", ECX=" INTPTR_FORMAT, uc->context_ecx); ++ st->print(", EDX=" INTPTR_FORMAT, uc->context_edx); ++ st->cr(); ++ st->print( "ESP=" INTPTR_FORMAT, uc->context_esp); ++ st->print(", EBP=" INTPTR_FORMAT, uc->context_ebp); ++ st->print(", ESI=" INTPTR_FORMAT, uc->context_esi); ++ st->print(", EDI=" INTPTR_FORMAT, uc->context_edi); ++ st->cr(); ++ st->print( "EIP=" INTPTR_FORMAT, uc->context_eip); ++ st->print(", EFLAGS=" INTPTR_FORMAT, uc->context_eflags); ++#endif // AMD64 ++#endif + st->cr(); + st->cr(); + +@@ -837,6 +954,7 @@ void os::print_register_info(outputStrea + + // this is only for the "general purpose" registers + ++#ifdef __linux__ + #ifdef AMD64 + st->print("RAX="); print_location(st, uc->uc_mcontext.gregs[REG_RAX]); + st->print("RBX="); print_location(st, uc->uc_mcontext.gregs[REG_RBX]); +@@ -864,6 +982,35 @@ void os::print_register_info(outputStrea + st->print("ESI="); print_location(st, uc->uc_mcontext.gregs[REG_ESI]); + st->print("EDI="); print_location(st, uc->uc_mcontext.gregs[REG_EDI]); + #endif // AMD64 ++#elif defined(__FreeBSD_kernel__) ++#ifdef AMD64 ++ st->print("RAX="); print_location(st, uc->context_rax); ++ st->print("RBX="); print_location(st, uc->context_rbx); ++ st->print("RCX="); print_location(st, uc->context_rcx); ++ st->print("RDX="); print_location(st, uc->context_rdx); ++ st->print("RSP="); print_location(st, uc->context_rsp); ++ st->print("RBP="); print_location(st, uc->context_rbp); ++ st->print("RSI="); print_location(st, uc->context_rsi); ++ st->print("RDI="); print_location(st, uc->context_rdi); ++ st->print("R8 ="); print_location(st, uc->context_r8); ++ st->print("R9 ="); print_location(st, uc->context_r9); ++ st->print("R10="); print_location(st, uc->context_r10); ++ st->print("R11="); print_location(st, uc->context_r11); ++ st->print("R12="); print_location(st, uc->context_r12); ++ st->print("R13="); print_location(st, uc->context_r13); ++ st->print("R14="); print_location(st, uc->context_r14); ++ st->print("R15="); print_location(st, uc->context_r15); ++#else ++ st->print("EAX="); print_location(st, uc->context_eax); ++ st->print("EBX="); print_location(st, uc->context_ebx); ++ st->print("ECX="); print_location(st, uc->context_ecx); ++ st->print("EDX="); print_location(st, uc->context_edx); ++ st->print("ESP="); print_location(st, uc->context_esp); ++ st->print("EBP="); print_location(st, uc->context_ebp); ++ st->print("ESI="); print_location(st, uc->context_esi); ++ st->print("EDI="); print_location(st, uc->context_edi); ++#endif // AMD64 ++#endif + + st->cr(); + } +Index: b/hotspot/src/share/vm/memory/allocation.hpp +=================================================================== +--- a/hotspot/src/share/vm/memory/allocation.hpp ++++ b/hotspot/src/share/vm/memory/allocation.hpp +@@ -25,8 +25,8 @@ + #ifndef SHARE_VM_MEMORY_ALLOCATION_HPP + #define SHARE_VM_MEMORY_ALLOCATION_HPP + +-#include "runtime/globals.hpp" + #include "utilities/globalDefinitions.hpp" ++#include "runtime/globals.hpp" + #include "utilities/macros.hpp" + #ifdef COMPILER1 + #include "c1/c1_globals.hpp" +Index: b/hotspot/src/share/vm/ci/ciObject.hpp +=================================================================== +--- a/hotspot/src/share/vm/ci/ciObject.hpp ++++ b/hotspot/src/share/vm/ci/ciObject.hpp +@@ -25,6 +25,7 @@ + #ifndef SHARE_VM_CI_CIOBJECT_HPP + #define SHARE_VM_CI_CIOBJECT_HPP + ++#include "utilities/globalDefinitions.hpp" + #include "ci/ciBaseObject.hpp" + #include "ci/ciClassList.hpp" + #include "memory/allocation.hpp" +Index: b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp +=================================================================== +--- a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp ++++ b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp +@@ -22,6 +22,7 @@ + * + */ + ++#include "utilities/globalDefinitions.hpp" + // no precompiled headers + #include "classfile/vmSymbols.hpp" + #include "gc_interface/collectedHeap.hpp" +Index: b/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp +=================================================================== +--- a/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp ++++ b/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp +@@ -68,7 +68,7 @@ + # include <sys/procfs.h> + # endif + +-#if defined(LINUX) || defined(_ALLBSD_SOURCE) ++#if defined(LINUX) || defined(_ALLBSD_SOURCE) || defined(__FreeBSD_kernel__) + #ifndef __STDC_LIMIT_MACROS + #define __STDC_LIMIT_MACROS + #endif // __STDC_LIMIT_MACROS +Index: b/hotspot/make/defs.make +=================================================================== +--- a/hotspot/make/defs.make ++++ b/hotspot/make/defs.make +@@ -179,9 +179,6 @@ endif + # Windows should have OS predefined + ifeq ($(OS),) + OS := $(shell uname -s) +- ifneq ($(findstring BSD,$(OS)),) +- OS=bsd +- endif + ifeq ($(OS), Darwin) + OS=bsd + endif +@@ -207,6 +204,10 @@ else + OSNAME=linux + endif + ++ifeq ($(OS), GNU/kFreeBSD) ++ OSNAME=linux ++endif ++ + # Determinations of default make arguments and platform specific settings + MAKE_ARGS= + +Index: b/hotspot/make/linux/Makefile +=================================================================== +--- a/hotspot/make/linux/Makefile ++++ b/hotspot/make/linux/Makefile +@@ -236,6 +236,9 @@ checks: check_os_version check_j2se_vers + SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4% + OS_VERSION := $(shell uname -r) + EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION)) ++ifeq ($(shell uname -s), GNU/kFreeBSD) ++EMPTY_IF_NOT_SUPPORTED = supported ++endif + + check_os_version: + ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),) +Index: b/hotspot/make/linux/makefiles/defs.make +=================================================================== +--- a/hotspot/make/linux/makefiles/defs.make ++++ b/hotspot/make/linux/makefiles/defs.make +@@ -84,7 +84,7 @@ ifneq (,$(findstring $(ARCH), sparc)) + endif + + # i686/i586 and amd64/x86_64 +-ifneq (,$(findstring $(ARCH), amd64 x86_64 i686 i586)) ++ifneq (,$(findstring $(ARCH), amd64 x86_64 i686 i586 i486 i386)) + ifeq ($(ARCH_DATA_MODEL), 64) + ARCH_DATA_MODEL = 64 + MAKE_ARGS += LP64=1 +@@ -92,7 +92,7 @@ ifneq (,$(findstring $(ARCH), amd64 x86_ + VM_PLATFORM = linux_amd64 + else + ARCH_DATA_MODEL = 32 +- PLATFORM = linux-i586 ++ PLATFORM = linux_i486 + VM_PLATFORM = linux_i486 + endif + HS_ARCH = x86 +Index: b/hotspot/agent/src/os/linux/ps_core.c +=================================================================== +--- a/hotspot/agent/src/os/linux/ps_core.c ++++ b/hotspot/agent/src/os/linux/ps_core.c +@@ -551,11 +551,16 @@ static bool core_handle_prstatus(struct + return false; + + // copy regs ++#if defined(__FreeBSD_kernel__) ++ memcpy(&newthr->regs, &prstat->pr_reg, sizeof(struct user_regs_struct)); ++#else + memcpy(&newthr->regs, prstat->pr_reg, sizeof(struct user_regs_struct)); ++#endif + + if (is_debug()) { + print_debug("integer regset\n"); + #ifdef i386 ++#ifdef __linux__ + // print the regset + print_debug("\teax = 0x%x\n", newthr->regs.eax); + print_debug("\tebx = 0x%x\n", newthr->regs.ebx); +@@ -566,9 +571,21 @@ static bool core_handle_prstatus(struct + print_debug("\tesi = 0x%x\n", newthr->regs.esi); + print_debug("\tedi = 0x%x\n", newthr->regs.edi); + print_debug("\teip = 0x%x\n", newthr->regs.eip); ++#elif defined(__FreeBSD_kernel__) ++ print_debug("\teax = 0x%x\n", newthr->regs.r_eax); ++ print_debug("\tebx = 0x%x\n", newthr->regs.r_ebx); ++ print_debug("\tecx = 0x%x\n", newthr->regs.r_ecx); ++ print_debug("\tedx = 0x%x\n", newthr->regs.r_edx); ++ print_debug("\tesp = 0x%x\n", newthr->regs.r_esp); ++ print_debug("\tebp = 0x%x\n", newthr->regs.r_ebp); ++ print_debug("\tesi = 0x%x\n", newthr->regs.r_esi); ++ print_debug("\tedi = 0x%x\n", newthr->regs.r_edi); ++ print_debug("\teip = 0x%x\n", newthr->regs.r_eip); ++#endif + #endif + + #if defined(amd64) || defined(x86_64) ++#ifdef __linux__ + // print the regset + print_debug("\tr15 = 0x%lx\n", newthr->regs.r15); + print_debug("\tr14 = 0x%lx\n", newthr->regs.r14); +@@ -597,6 +614,27 @@ static bool core_handle_prstatus(struct + print_debug("\tes = 0x%lx\n", newthr->regs.es); + print_debug("\tfs = 0x%lx\n", newthr->regs.fs); + print_debug("\tgs = 0x%lx\n", newthr->regs.gs); ++#elif defined(__FreeBSD_kernel__) ++ print_debug("\tr15 = 0x%lx\n", newthr->regs.r_r15); ++ print_debug("\tr14 = 0x%lx\n", newthr->regs.r_r14); ++ print_debug("\tr13 = 0x%lx\n", newthr->regs.r_r13); ++ print_debug("\tr12 = 0x%lx\n", newthr->regs.r_r12); ++ print_debug("\trbp = 0x%lx\n", newthr->regs.r_rbp); ++ print_debug("\trbx = 0x%lx\n", newthr->regs.r_rbx); ++ print_debug("\tr11 = 0x%lx\n", newthr->regs.r_r11); ++ print_debug("\tr10 = 0x%lx\n", newthr->regs.r_r10); ++ print_debug("\tr9 = 0x%lx\n", newthr->regs.r_r9); ++ print_debug("\tr8 = 0x%lx\n", newthr->regs.r_r8); ++ print_debug("\trax = 0x%lx\n", newthr->regs.r_rax); ++ print_debug("\trcx = 0x%lx\n", newthr->regs.r_rcx); ++ print_debug("\trdx = 0x%lx\n", newthr->regs.r_rdx); ++ print_debug("\trsi = 0x%lx\n", newthr->regs.r_rsi); ++ print_debug("\trdi = 0x%lx\n", newthr->regs.r_rdi); ++ print_debug("\trip = 0x%lx\n", newthr->regs.r_rip); ++ print_debug("\tcs = 0x%lx\n", newthr->regs.r_cs); ++ print_debug("\trsp = 0x%lx\n", newthr->regs.r_rsp); ++ print_debug("\tss = 0x%lx\n", newthr->regs.r_ss); ++#endif + #endif + } + +Index: b/hotspot/agent/src/os/linux/ps_proc.c +=================================================================== +--- a/hotspot/agent/src/os/linux/ps_proc.c ++++ b/hotspot/agent/src/os/linux/ps_proc.c +@@ -42,6 +42,22 @@ + #define __WALL 0x40000000 // Copied from /usr/include/linux/wait.h + #endif + ++#ifndef PTRACE_PEEKDATA ++#define PTRACE_PEEKDATA PT_READ_D ++#endif ++ ++#ifndef PTRACE_ATTACH ++#define PTRACE_ATTACH PT_ATTACH ++#endif ++ ++#ifndef PTRACE_DETACH ++#define PTRACE_DETACH PT_DETACH ++#endif ++ ++#ifndef PTRACE_CONT ++#define PTRACE_CONT PT_CONTINUE ++#endif ++ + // This file has the libproc implementation specific to live process + // For core files, refer to ps_core.c + +@@ -59,7 +75,11 @@ static inline uintptr_t align(uintptr_t + // before calling process_read_data. + + static bool process_read_data(struct ps_prochandle* ph, uintptr_t addr, char *buf, size_t size) { ++#if defined(__FreeBSD_kernel__) ++ int rslt; ++#else + long rslt; ++#endif + size_t i, words; + uintptr_t end_addr = addr + size; + uintptr_t aligned_addr = align(addr, sizeof(long)); +@@ -67,36 +87,62 @@ static bool process_read_data(struct ps_ + if (aligned_addr != addr) { + char *ptr = (char *)&rslt; + errno = 0; ++#if defined(__FreeBSD_kernel__) ++ rslt = ptrace(PTRACE_PEEKDATA, ph->pid, (caddr_t) aligned_addr, 0); ++#else + rslt = ptrace(PTRACE_PEEKDATA, ph->pid, aligned_addr, 0); ++#endif + if (errno) { + print_debug("ptrace(PTRACE_PEEKDATA, ..) failed for %d bytes @ %lx\n", size, addr); + return false; + } + for (; aligned_addr != addr; aligned_addr++, ptr++); ++#if defined(__FreeBSD_kernel__) ++ for (; ((intptr_t)aligned_addr % sizeof(int)) && aligned_addr < end_addr; ++#else + for (; ((intptr_t)aligned_addr % sizeof(long)) && aligned_addr < end_addr; ++#endif + aligned_addr++) + *(buf++) = *(ptr++); + } + ++#if defined(__FreeBSD_kernel__) ++ words = (end_addr - aligned_addr) / sizeof(int); ++#else + words = (end_addr - aligned_addr) / sizeof(long); ++#endif + + // assert((intptr_t)aligned_addr % sizeof(long) == 0); + for (i = 0; i < words; i++) { + errno = 0; ++#if defined(__FreeBSD_kernel__) ++ rslt = ptrace(PTRACE_PEEKDATA, ph->pid, (caddr_t) aligned_addr, 0); ++#else + rslt = ptrace(PTRACE_PEEKDATA, ph->pid, aligned_addr, 0); ++#endif + if (errno) { + print_debug("ptrace(PTRACE_PEEKDATA, ..) failed for %d bytes @ %lx\n", size, addr); + return false; + } ++#if defined(__FreeBSD_kernel__) ++ *(int *)buf = rslt; ++ buf += sizeof(int); ++ aligned_addr += sizeof(int); ++#else + *(long *)buf = rslt; + buf += sizeof(long); + aligned_addr += sizeof(long); ++#endif + } + + if (aligned_addr != end_addr) { + char *ptr = (char *)&rslt; + errno = 0; ++#if defined(__FreeBSD_kernel__) ++ rslt = ptrace(PTRACE_PEEKDATA, ph->pid, (caddr_t) aligned_addr, 0); ++#else + rslt = ptrace(PTRACE_PEEKDATA, ph->pid, aligned_addr, 0); ++#endif + if (errno) { + print_debug("ptrace(PTRACE_PEEKDATA, ..) failed for %d bytes @ %lx\n", size, addr); + return false; +@@ -135,7 +181,11 @@ static bool process_get_lwp_regs(struct + #endif + + #ifdef PTRACE_GETREGS_REQ ++#if defined(__FreeBSD_kernel__) ++ if (ptrace_getregs(PTRACE_GETREGS_REQ, pid, (caddr_t) user, 0) < 0) { ++#else + if (ptrace_getregs(PTRACE_GETREGS_REQ, pid, user, NULL) < 0) { ++#endif + print_debug("ptrace(PTRACE_GETREGS, ...) failed for lwp %d\n", pid); + return false; + } +@@ -216,7 +266,11 @@ static bool ptrace_waitpid(pid_t pid) { + + // attach to a process/thread specified by "pid" + static bool ptrace_attach(pid_t pid, char* err_buf, size_t err_buf_len) { ++#if defined(__FreeBSD_kernel__) ++ if (ptrace(PTRACE_ATTACH, pid, NULL, 0) < 0) { ++#else + if (ptrace(PTRACE_ATTACH, pid, NULL, NULL) < 0) { ++#endif + char buf[200]; + char* msg = strerror_r(errno, buf, sizeof(buf)); + snprintf(err_buf, err_buf_len, "ptrace(PTRACE_ATTACH, ..) failed for %d: %s", pid, msg); +@@ -313,7 +367,11 @@ static bool read_lib_info(struct ps_proc + + // detach a given pid + static bool ptrace_detach(pid_t pid) { ++#if defined(__FreeBSD_kernel__) ++ if (pid && ptrace(PTRACE_DETACH, pid, NULL, 0) < 0) { ++#else + if (pid && ptrace(PTRACE_DETACH, pid, NULL, NULL) < 0) { ++#endif + print_debug("ptrace(PTRACE_DETACH, ..) failed for %d\n", pid); + return false; + } else { +Index: b/hotspot/agent/src/os/linux/libproc.h +=================================================================== +--- a/hotspot/agent/src/os/linux/libproc.h ++++ b/hotspot/agent/src/os/linux/libproc.h +@@ -28,6 +28,10 @@ + #include <jni.h> + #include <unistd.h> + #include <stdint.h> ++#if defined(__FreeBSD_kernel__) ++#include <sys/types.h> ++#include <machine/reg.h> ++#endif + #include "proc_service.h" + + #ifdef ALT_SASRCDIR +@@ -73,6 +77,10 @@ combination of ptrace and /proc calls. + #define user_regs_struct pt_regs + #endif + ++#if defined(__FreeBSD_kernel__) ++#define user_regs_struct reg ++#endif ++ + // This C bool type must be int for compatibility with Linux calls and + // it would be a mistake to equivalence it to C++ bool on many platforms + +Index: b/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c +=================================================================== +--- a/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c ++++ b/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c +@@ -367,7 +367,7 @@ JNIEXPORT jlongArray JNICALL Java_sun_jv + + #ifdef i386 + #define REG_INDEX(reg) sun_jvm_hotspot_debugger_x86_X86ThreadContext_##reg +- ++#ifdef __linux__ + regs[REG_INDEX(GS)] = (uintptr_t) gregs.xgs; + regs[REG_INDEX(FS)] = (uintptr_t) gregs.xfs; + regs[REG_INDEX(ES)] = (uintptr_t) gregs.xes; +@@ -383,12 +383,28 @@ JNIEXPORT jlongArray JNICALL Java_sun_jv + regs[REG_INDEX(PC)] = (uintptr_t) gregs.eip; + regs[REG_INDEX(CS)] = (uintptr_t) gregs.xcs; + regs[REG_INDEX(SS)] = (uintptr_t) gregs.xss; +- ++#elif defined(__FreeBSD_kernel__) ++ regs[REG_INDEX(GS)] = (uintptr_t) gregs.r_gs; ++ regs[REG_INDEX(FS)] = (uintptr_t) gregs.r_fs; ++ regs[REG_INDEX(ES)] = (uintptr_t) gregs.r_es; ++ regs[REG_INDEX(DS)] = (uintptr_t) gregs.r_ds; ++ regs[REG_INDEX(EDI)] = (uintptr_t) gregs.r_edi; ++ regs[REG_INDEX(ESI)] = (uintptr_t) gregs.r_esi; ++ regs[REG_INDEX(FP)] = (uintptr_t) gregs.r_ebp; ++ regs[REG_INDEX(SP)] = (uintptr_t) gregs.r_isp; ++ regs[REG_INDEX(EBX)] = (uintptr_t) gregs.r_ebx; ++ regs[REG_INDEX(EDX)] = (uintptr_t) gregs.r_edx; ++ regs[REG_INDEX(ECX)] = (uintptr_t) gregs.r_ecx; ++ regs[REG_INDEX(EAX)] = (uintptr_t) gregs.r_eax; ++ regs[REG_INDEX(PC)] = (uintptr_t) gregs.r_eip; ++ regs[REG_INDEX(CS)] = (uintptr_t) gregs.r_cs; ++ regs[REG_INDEX(SS)] = (uintptr_t) gregs.r_ss; ++#endif + #endif /* i386 */ + + #ifdef amd64 + #define REG_INDEX(reg) sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_##reg +- ++#ifdef __linux__ + regs[REG_INDEX(R15)] = gregs.r15; + regs[REG_INDEX(R14)] = gregs.r14; + regs[REG_INDEX(R13)] = gregs.r13; +@@ -414,7 +430,27 @@ JNIEXPORT jlongArray JNICALL Java_sun_jv + regs[REG_INDEX(ES)] = gregs.es; + regs[REG_INDEX(FS)] = gregs.fs; + regs[REG_INDEX(GS)] = gregs.gs; +- ++#elif defined(__FreeBSD_kernel__) ++ regs[REG_INDEX(R15)] = gregs.r_r15; ++ regs[REG_INDEX(R14)] = gregs.r_r14; ++ regs[REG_INDEX(R13)] = gregs.r_r13; ++ regs[REG_INDEX(R12)] = gregs.r_r12; ++ regs[REG_INDEX(RBP)] = gregs.r_rbp; ++ regs[REG_INDEX(RBX)] = gregs.r_rbx; ++ regs[REG_INDEX(R11)] = gregs.r_r11; ++ regs[REG_INDEX(R10)] = gregs.r_r10; ++ regs[REG_INDEX(R9)] = gregs.r_r9; ++ regs[REG_INDEX(R8)] = gregs.r_r8; ++ regs[REG_INDEX(RAX)] = gregs.r_rax; ++ regs[REG_INDEX(RCX)] = gregs.r_rcx; ++ regs[REG_INDEX(RDX)] = gregs.r_rdx; ++ regs[REG_INDEX(RSI)] = gregs.r_rsi; ++ regs[REG_INDEX(RDI)] = gregs.r_rdi; ++ regs[REG_INDEX(RIP)] = gregs.r_rip; ++ regs[REG_INDEX(CS)] = gregs.r_cs; ++ regs[REG_INDEX(RSP)] = gregs.r_rsp; ++ regs[REG_INDEX(SS)] = gregs.r_ss; ++#endif + #endif /* amd64 */ + + #if defined(sparc) || defined(sparcv9) +Index: b/hotspot/make/linux/makefiles/saproc.make +=================================================================== +--- a/hotspot/make/linux/makefiles/saproc.make ++++ b/hotspot/make/linux/makefiles/saproc.make +@@ -90,6 +90,7 @@ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE) + -I$(GENERATED) \ + -I$(BOOT_JAVA_HOME)/include \ + -I$(BOOT_JAVA_HOME)/include/$(Platform_os_family) \ ++ -I$(BOOT_JAVA_HOME)/include/bsd \ + $(ALT_SAINCDIR) \ + $(SASRCFILES) \ + $(SA_LFLAGS) \ diff --git a/debian/patches/kfreebsd-support-jamvm.diff b/debian/patches/kfreebsd-support-jamvm.diff new file mode 100644 index 0000000..cd44bcf --- /dev/null +++ b/debian/patches/kfreebsd-support-jamvm.diff @@ -0,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 <drazzib@debian.org> +Last-Update: 2011-08-05 +Forwarded: no + +--- a/jamvm/configure.ac ++++ b/jamvm/configure.ac +@@ -38,6 +38,7 @@ + i386-*-freebsd*) host_os=bsd libdl_needed=no ;; + i386-*-solaris*) host_cpu=x86 host_os=solaris ;; + x86_64-*-linux*) host_os=linux ;; ++x86_64-*-kfreebsd*) host_os=linux ;; + hppa*-*-linux*) host_cpu=parisc host_os=linux ;; + mips*-*-linux*) host_cpu=mips host_os=linux ;; + x86_64-*-openbsd*) host_os=bsd libdl_needed=no ;; +--- a/jamvm/configure ++++ b/jamvm/configure +@@ -2926,6 +2926,7 @@ + i386-*-freebsd*) host_os=bsd libdl_needed=no ;; + i386-*-solaris*) host_cpu=x86 host_os=solaris ;; + x86_64-*-linux*) host_os=linux ;; ++x86_64-*-kfreebsd*) host_os=linux ;; + hppa*-*-linux*) host_cpu=parisc host_os=linux ;; + mips*-*-linux*) host_cpu=mips host_os=linux ;; + x86_64-*-openbsd*) host_os=bsd libdl_needed=no ;; +--- a/jamvm/src/classlib/openjdk/jvm.c ++++ b/jamvm/src/classlib/openjdk/jvm.c +@@ -63,6 +63,10 @@ + #define have_monotonic_clock FALSE + #endif + ++#ifndef TIOCINQ ++#define TIOCINQ FIONREAD ++#endif ++ + static Class *cloneable_class, *constant_pool_class; + static Class *exception_class, *runtime_excp_class; + diff --git a/debian/patches/kfreebsd-support-jdk.diff b/debian/patches/kfreebsd-support-jdk.diff new file mode 100644 index 0000000..b809da3 --- /dev/null +++ b/debian/patches/kfreebsd-support-jdk.diff @@ -0,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 <drazzib@debian.org> +Author: Guido Günther <agx@sigxcpu.org> +Author: Steven Chamberlain <steven@pyro.eu.org> +Forwarded: no + +Index: b/jdk/src/solaris/bin/ergo_i586.c +=================================================================== +--- a/jdk/src/solaris/bin/ergo_i586.c ++++ b/jdk/src/solaris/bin/ergo_i586.c +@@ -106,7 +106,7 @@ ServerClassMachineImpl(void) { + + #endif /* __solaris__ */ + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + + /* + * A utility method for asking the CPU about itself. +Index: b/jdk/src/solaris/bin/jexec.c +=================================================================== +--- a/jdk/src/solaris/bin/jexec.c ++++ b/jdk/src/solaris/bin/jexec.c +@@ -76,7 +76,7 @@ + #include <string.h> + #include <limits.h> + #include <errno.h> +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + # include <sys/types.h> + # include <sys/stat.h> + # include <fcntl.h> +@@ -92,7 +92,7 @@ static const char * CRAZY_EXEC_MSG = " + static const char * MISSING_JAVA_MSG = "can't locate java"; + static const char * BAD_ARG_MSG = "incorrect number of arguments"; + static const char * MEM_FAILED_MSG = "memory allocation failed"; +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + static const char * BAD_PATHNAME_MSG = "invalid path"; + static const char * BAD_FILE_MSG = "invalid file"; + static const char * BAD_MAGIC_MSG = "invalid file (bad magic number)"; +@@ -101,7 +101,7 @@ static const char * UNKNOWN_ERROR = " + + /* Define a constant that represents the number of directories to pop off the + * current location to find the java binary */ +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + static const int RELATIVE_DEPTH = 2; + #else /* Solaris */ + static const int RELATIVE_DEPTH = 3; +@@ -114,7 +114,7 @@ static const char * BIN_PATH = "/bin/jav + static const char * JAR_FLAG = "-jar"; + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + /* largest possible size for a local file header */ + static const size_t CHUNK_SIZE = 65535; + +@@ -126,7 +126,7 @@ static const ssize_t MIN_SIZE = LOCHDR + + int main(int argc, const char * argv[]); + void errorExit(int error, const char * message); + int getJavaPath(const char * path, char * buf, int depth); +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + const char * isJar(const char * path); + #endif + +@@ -182,7 +182,7 @@ int main(int argc, const char * argv[]) + } + nargv[nargc++] = java; + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + /* The "-jar" flag is already in the original args list on Solaris, + * so it only needs to be added on Linux. */ + nargv[nargc++] = JAR_FLAG; +@@ -192,7 +192,7 @@ int main(int argc, const char * argv[]) + const char * jarfile = argv[argi++]; + const char * message = NULL; + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + /* On Linux we also need to make sure argv[1] is really a JAR + * file (this will also resolve any symlinks, which helps). */ + char jarPath[PATH_MAX + 1]; +@@ -301,7 +301,7 @@ int getJavaPath(const char * path, char + } + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + /* + * Check if the given file is a JAR file. + * +Index: b/jdk/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c +=================================================================== +--- a/jdk/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c ++++ b/jdk/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c +@@ -42,7 +42,7 @@ + #include <strings.h> + #endif + +-#if defined(__linux__) || defined(_AIX) ++#if defined(__linux__) || defined(_AIX) || defined(__GLIBC__) + #include <string.h> + #endif + +Index: b/jdk/src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c +=================================================================== +--- a/jdk/src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c ++++ b/jdk/src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c +@@ -35,7 +35,7 @@ + #include <strings.h> + #endif + +-#if defined(__linux__) ++#if defined(__linux__) || defined(__GLIBC__) + #include <string.h> + #endif + +Index: b/jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c +=================================================================== +--- a/jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c ++++ b/jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c +@@ -41,7 +41,7 @@ + #include <sys/sendfile.h> + #elif defined(_AIX) + #include <sys/socket.h> +-#elif defined(_ALLBSD_SOURCE) ++#elif defined(_ALLBSD_SOURCE) || defined(__FreeBSD_kernel__) + #include <sys/types.h> + #include <sys/socket.h> + #include <sys/uio.h> +@@ -216,6 +216,31 @@ Java_sun_nio_ch_FileChannelImpl_transfer + + if (numBytes > 0) + return numBytes; ++ ++ if (result == -1) { ++ if (errno == EAGAIN) ++ return IOS_UNAVAILABLE; ++ if (errno == EOPNOTSUPP || errno == ENOTSOCK || errno == ENOTCONN) ++ return IOS_UNSUPPORTED_CASE; ++ if ((errno == EINVAL) && ((ssize_t)count >= 0)) ++ return IOS_UNSUPPORTED_CASE; ++ if (errno == EINTR) ++ return IOS_INTERRUPTED; ++ JNU_ThrowIOExceptionWithLastError(env, "Transfer failed"); ++ return IOS_THROWN; ++ } ++ ++ return result; ++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) ++ off_t numBytes; ++ int result; ++ ++ numBytes = count; ++ ++ result = sendfile(srcFD, dstFD, position, count, NULL, &numBytes, 0); ++ ++ if (numBytes > 0) ++ return numBytes; + + if (result == -1) { + if (errno == EAGAIN) +Index: b/jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h +=================================================================== +--- a/jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h ++++ b/jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h +@@ -65,9 +65,25 @@ typedef int sctp_freepaddrs_func(void *a + typedef int sctp_bindx_func(int sock, void *addrs, int addrcnt, int flags); + typedef int sctp_peeloff_func(int sock, sctp_assoc_t id); + ++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + ++#include <stdint.h> ++#include <sys/types.h> ++#include <sys/socket.h> ++#include <netinet/sctp.h> ++#include <netinet/sctp_peeloff.h> ++#include <netinet/sctp_uio.h> ++#include "jni.h" ++ ++#define nio_sctp_getladdrs sctp_getladdrs ++#define nio_sctp_freeladdrs sctp_freeladdrs ++#define nio_sctp_getpaddrs sctp_getpaddrs ++#define nio_sctp_freepaddrs sctp_freepaddrs ++#define nio_sctp_bindx sctp_bindx ++#define nio_sctp_peeloff sctp_peeloff + + #else /* __linux__ */ ++ + #include <stdint.h> + #include <linux/types.h> + #include <sys/socket.h> +@@ -319,9 +335,19 @@ typedef int sctp_freepaddrs_func(struct + typedef int sctp_bindx_func(int sd, struct sockaddr *addrs, int addrcnt, int flags); + typedef int sctp_peeloff_func(int sock, sctp_assoc_t id); + +- + #endif /* __linux__ */ + ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) ++ ++#define nio_sctp_getladdrs sctp_getladdrs ++#define nio_sctp_freeladdrs sctp_freeladdrs ++#define nio_sctp_getpaddrs sctp_getpaddrs ++#define nio_sctp_freepaddrs sctp_freepaddrs ++#define nio_sctp_bindx sctp_bindx ++#define nio_sctp_peeloff sctp_peeloff ++ ++#else ++ + sctp_getladdrs_func* nio_sctp_getladdrs; + sctp_freeladdrs_func* nio_sctp_freeladdrs; + sctp_getpaddrs_func* nio_sctp_getpaddrs; +@@ -329,6 +355,8 @@ sctp_freepaddrs_func* nio_sctp_freepaddr + sctp_bindx_func* nio_sctp_bindx; + sctp_peeloff_func* nio_sctp_peeloff; + ++#endif ++ + jboolean loadSocketExtensionFuncs(JNIEnv* env); + + #endif /* !SUN_NIO_CH_SCTP_H */ +Index: b/jdk/src/solaris/native/sun/nio/ch/sctp/SctpChannelImpl.c +=================================================================== +--- a/jdk/src/solaris/native/sun/nio/ch/sctp/SctpChannelImpl.c ++++ b/jdk/src/solaris/native/sun/nio/ch/sctp/SctpChannelImpl.c +@@ -445,7 +445,7 @@ JNIEXPORT jint JNICALL Java_sun_nio_ch_s + } else if (errno == EINTR) { + return IOS_INTERRUPTED; + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + } else if (errno == ENOTCONN) { + /* ENOTCONN when EOF reached */ + rv = 0; +Index: b/jdk/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c +=================================================================== +--- a/jdk/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c ++++ b/jdk/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c +@@ -35,7 +35,7 @@ + #include <string.h> + #include <errno.h> + +-#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) + #include <netinet/in.h> + #endif + +@@ -91,7 +91,7 @@ Java_sun_nio_ch_DatagramChannelImpl_disc + rv = connect(fd, 0, 0); + #endif + +-#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(_AIX) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(_AIX) || defined(__GLIBC__) + { + int len; + SOCKADDR sa; +Index: b/jdk/src/solaris/native/sun/nio/ch/Net.c +=================================================================== +--- a/jdk/src/solaris/native/sun/nio/ch/Net.c ++++ b/jdk/src/solaris/native/sun/nio/ch/Net.c +@@ -273,7 +273,7 @@ Java_sun_nio_ch_Net_socket0(JNIEnv *env, + } + } + +-#if defined(__linux__) ++#ifdef __linux__ + if (type == SOCK_DGRAM) { + int arg = 0; + int level = (domain == AF_INET6) ? IPPROTO_IPV6 : IPPROTO_IP; +Index: b/jdk/src/solaris/native/sun/nio/ch/NativeThread.c +=================================================================== +--- a/jdk/src/solaris/native/sun/nio/ch/NativeThread.c ++++ b/jdk/src/solaris/native/sun/nio/ch/NativeThread.c +@@ -32,7 +32,7 @@ + #include "sun_nio_ch_NativeThread.h" + #include "nio_util.h" + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + #include <pthread.h> + #include <sys/signal.h> + /* Also defined in net/linux_close.c */ +Index: b/jdk/src/solaris/native/sun/nio/ch/SocketChannelImpl.c +=================================================================== +--- a/jdk/src/solaris/native/sun/nio/ch/SocketChannelImpl.c ++++ b/jdk/src/solaris/native/sun/nio/ch/SocketChannelImpl.c +@@ -31,7 +31,7 @@ + #include <string.h> + #include <poll.h> + +-#if __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + #include <netinet/in.h> + #endif + +Index: b/jdk/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c +=================================================================== +--- a/jdk/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c ++++ b/jdk/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c +@@ -28,7 +28,7 @@ + #include <sys/types.h> + #include <sys/socket.h> + +-#if __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + #include <netinet/in.h> + #endif + +Index: b/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c +=================================================================== +--- a/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c ++++ b/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c +@@ -58,6 +58,7 @@ static int preCloseFD = -1; /* File + */ + jboolean loadSocketExtensionFuncs + (JNIEnv* env) { ++#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) + if (dlopen(nativeSctpLib, RTLD_GLOBAL | RTLD_LAZY) == NULL) { + JNU_ThrowByName(env, "java/lang/UnsupportedOperationException", + dlerror()); +@@ -105,6 +106,7 @@ jboolean loadSocketExtensionFuncs + dlerror()); + return JNI_FALSE; + } ++#endif /* __FreeBSD__ */ + + funcsLoaded = JNI_TRUE; + return JNI_TRUE; +Index: b/jdk/src/solaris/native/sun/awt/extutil.h +=================================================================== +--- a/jdk/src/solaris/native/sun/awt/extutil.h ++++ b/jdk/src/solaris/native/sun/awt/extutil.h +@@ -58,7 +58,7 @@ in this Software without prior written a + */ + /* $XFree86: xc/include/extensions/extutil.h,v 1.5 2001/01/17 17:53:20 dawes Exp $ */ + +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + + #ifndef _EXTUTIL_H_ + #define _EXTUTIL_H_ +Index: b/jdk/src/solaris/native/sun/awt/VDrawingArea.c +=================================================================== +--- a/jdk/src/solaris/native/sun/awt/VDrawingArea.c ++++ b/jdk/src/solaris/native/sun/awt/VDrawingArea.c +@@ -33,7 +33,7 @@ + #include <stdio.h> + #include <stdlib.h> + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + /* XXX: Shouldn't be necessary. */ + #include "awt_p.h" + #endif /* __linux__ */ +Index: b/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c +=================================================================== +--- a/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c ++++ b/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c +@@ -121,7 +121,8 @@ static char *x11GraphicsConfigClassName + */ + + #define MAXFRAMEBUFFERS 16 +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) ++ + typedef struct { + int screen_number; + short x_org; +@@ -440,7 +441,7 @@ getAllConfigs (JNIEnv *env, int screen, + RTLD_LAZY | RTLD_GLOBAL); + } + +-#ifndef __linux__ /* SOLARIS */ ++#if ! defined(__linux__) && ! defined(__GLIBC__) /* SOLARIS */ + if (xrenderLibHandle == NULL) { + xrenderLibHandle = dlopen("/usr/sfw/lib/libXrender.so.1", + RTLD_LAZY | RTLD_GLOBAL); +@@ -584,7 +585,8 @@ getAllConfigs (JNIEnv *env, int screen, + } + + #ifndef HEADLESS +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) ++ + static void xinerama_init_linux() + { + void* libHandle = NULL; +@@ -635,7 +637,7 @@ static void xinerama_init_linux() + } + } + #endif +-#if !defined(__linux__) && !defined(MACOSX) /* Solaris */ ++#if !defined(__linux__) && !defined(MACOSX) && !defined(__GLIBC__) /* Solaris */ + static void xinerama_init_solaris() + { + void* libHandle = NULL; +@@ -695,11 +697,11 @@ static void xineramaInit(void) { + } + + DTRACE_PRINTLN("Xinerama extension is available"); +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + xinerama_init_linux(); + #else /* Solaris */ + xinerama_init_solaris(); +-#endif /* __linux__ || MACOSX */ ++#endif /* __linux__ || MACOSX || __GLIBC__ */ + } + #endif /* HEADLESS */ + +@@ -1597,7 +1599,7 @@ Java_sun_awt_X11GraphicsEnvironment_getX + { + jobject point = NULL; + #ifndef HEADLESS /* return NULL in HEADLESS, Linux */ +-#if !defined(__linux__) && !defined(MACOSX) ++#if !defined(__linux__) && !defined(MACOSX) && !defined(__GLIBC__) + int x,y; + + AWT_LOCK(); +Index: b/jdk/src/solaris/native/sun/awt/awt_Font.c +=================================================================== +--- a/jdk/src/solaris/native/sun/awt/awt_Font.c ++++ b/jdk/src/solaris/native/sun/awt/awt_Font.c +@@ -255,7 +255,7 @@ loadFont(Display * display, char *name, + if (strcmp(style, "regular") == 0) { + altstyle = "roman"; + } +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + if (!strcmp(family, "lucidasans")) { + family = "lucida"; + } +Index: b/jdk/src/solaris/native/sun/awt/awt_InputMethod.c +=================================================================== +--- a/jdk/src/solaris/native/sun/awt/awt_InputMethod.c ++++ b/jdk/src/solaris/native/sun/awt/awt_InputMethod.c +@@ -52,7 +52,7 @@ static void PreeditDrawCallback(XIC, XPo + XIMPreeditDrawCallbackStruct *); + static void PreeditCaretCallback(XIC, XPointer, + XIMPreeditCaretCallbackStruct *); +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + static void StatusStartCallback(XIC, XPointer, XPointer); + static void StatusDoneCallback(XIC, XPointer, XPointer); + static void StatusDrawCallback(XIC, XPointer, +@@ -66,7 +66,7 @@ static void StatusDrawCallback(XIC, XPoi + #define PreeditDoneIndex 1 + #define PreeditDrawIndex 2 + #define PreeditCaretIndex 3 +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + #define StatusStartIndex 4 + #define StatusDoneIndex 5 + #define StatusDrawIndex 6 +@@ -84,14 +84,14 @@ static XIMProc callback_funcs[NCALLBACKS + (XIMProc)PreeditDoneCallback, + (XIMProc)PreeditDrawCallback, + (XIMProc)PreeditCaretCallback, +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + (XIMProc)StatusStartCallback, + (XIMProc)StatusDoneCallback, + (XIMProc)StatusDrawCallback, + #endif + }; + +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + #define MAX_STATUS_LEN 100 + typedef struct { + Window w; /*status window id */ +@@ -124,7 +124,7 @@ typedef struct _X11InputMethodData { + XIMCallback *callbacks; /* callback parameters */ + jobject x11inputmethod; /* global ref to X11InputMethod instance */ + /* associated with the XIC */ +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + StatusWindow *statusWindow; /* our own status window */ + #endif + char *lookup_buf; /* buffer used for XmbLookupString */ +@@ -370,7 +370,7 @@ destroyX11InputMethodData(JNIEnv *env, X + static void + freeX11InputMethodData(JNIEnv *env, X11InputMethodData *pX11IMData) + { +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + if (pX11IMData->statusWindow != NULL){ + StatusWindow *sw = pX11IMData->statusWindow; + XFreeGC(awt_display, sw->lightGC); +@@ -473,7 +473,7 @@ awt_x11inputmethod_lookupString(XKeyPres + pX11IMData = getX11InputMethodData(env, currentX11InputMethodInstance); + + if (pX11IMData == NULL) { +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + return False; + #else + return result; +@@ -481,7 +481,7 @@ awt_x11inputmethod_lookupString(XKeyPres + } + + if ((ic = pX11IMData->current_ic) == (XIC)0){ +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + return False; + #else + return result; +@@ -573,7 +573,7 @@ awt_x11inputmethod_lookupString(XKeyPres + return result; + } + +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + static StatusWindow *createStatusWindow( + Window parent) { + StatusWindow *statusWindow; +@@ -886,7 +886,7 @@ static void adjustStatusWindow(Window sh + } + } + } +-#endif /* __linux__ || MACOSX */ ++#endif /* __linux__ || MACOSX || __GLIBC__ */ + /* + * Creates two XICs, one for active clients and the other for passive + * clients. All information on those XICs are stored in the +@@ -929,7 +929,7 @@ createXIC(JNIEnv * env, X11InputMethodDa + return FALSE ; + } + +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + on_the_spot_styles |= XIMStatusNothing; + + /*kinput does not support XIMPreeditCallbacks and XIMStatusArea +@@ -942,9 +942,9 @@ createXIC(JNIEnv * env, X11InputMethodDa + break; + } + } +-#else /*! __linux__ && !MACOSX */ ++#else /*! __linux__ && !MACOSX && !__GLIBC__ */ + on_the_spot_styles |= XIMStatusNothing; +-#endif /* __linux__ || MACOSX */ ++#endif /* __linux__ || MACOSX || __GLIBC__ */ + + for (i = 0; i < im_styles->count_styles; i++) { + active_styles |= im_styles->supported_styles[i] & on_the_spot_styles; +@@ -998,7 +998,7 @@ createXIC(JNIEnv * env, X11InputMethodDa + NULL); + if (preedit == (XVaNestedList)NULL) + goto err; +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + /*always try XIMStatusCallbacks for active client...*/ + { + status = (XVaNestedList)XVaCreateNestedList(0, +@@ -1020,7 +1020,7 @@ createXIC(JNIEnv * env, X11InputMethodDa + XFree((void *)status); + XFree((void *)preedit); + } +-#else /* !__linux__ && !MACOSX */ ++#else /* !__linux__ && !MACOSX && !__GLIBC__ */ + pX11IMData->ic_active = XCreateIC(X11im, + XNClientWindow, w, + XNFocusWindow, w, +@@ -1028,7 +1028,7 @@ createXIC(JNIEnv * env, X11InputMethodDa + XNPreeditAttributes, preedit, + NULL); + XFree((void *)preedit); +-#endif /* __linux__ || MACOSX */ ++#endif /* __linux__ || MACOSX || __GLIBC__ */ + } else { + pX11IMData->ic_active = XCreateIC(X11im, + XNClientWindow, w, +@@ -1188,7 +1188,7 @@ PreeditCaretCallback(XIC ic, XPointer cl + + } + +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + static void + StatusStartCallback(XIC ic, XPointer client_data, XPointer call_data) + { +@@ -1256,7 +1256,7 @@ StatusDrawCallback(XIC ic, XPointer clie + finally: + AWT_UNLOCK(); + } +-#endif /* __linux__ || MACOSX */ ++#endif /* __linux__ || MACOSX || __GLIBC__ */ + + static void CommitStringCallback(XIC ic, XPointer client_data, XPointer call_data) { + JNIEnv *env = GetJNIEnv(); +@@ -1353,14 +1353,14 @@ Java_sun_awt_X11_XInputMethod_openXIMNat + /* Use IMInstantiate call back only on Linux, as there is a bug in Solaris + (4768335) + */ +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + registered = XRegisterIMInstantiateCallback(dpy, NULL, NULL, + NULL, (XIDProc)OpenXIMCallback, NULL); + if (!registered) { + /* directly call openXIM callback */ + #endif + OpenXIMCallback(dpy, NULL, NULL); +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + } + #endif + +@@ -1395,9 +1395,9 @@ Java_sun_awt_X11_XInputMethod_createXICN + + globalRef = (*env)->NewGlobalRef(env, this); + pX11IMData->x11inputmethod = globalRef; +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + pX11IMData->statusWindow = NULL; +-#endif /* __linux__ || MACOSX */ ++#endif /* __linux__ || MACOSX || __GLIBC__ */ + + pX11IMData->lookup_buf = 0; + pX11IMData->lookup_buf_len = 0; +@@ -1447,14 +1447,14 @@ Java_sun_awt_X11_XInputMethod_setXICFocu + setXICFocus(pX11IMData->current_ic, req); + currentX11InputMethodInstance = pX11IMData->x11inputmethod; + currentFocusWindow = w; +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + if (active && pX11IMData->statusWindow && pX11IMData->statusWindow->on) + onoffStatusWindow(pX11IMData, w, True); + #endif + } else { + currentX11InputMethodInstance = NULL; + currentFocusWindow = 0; +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + onoffStatusWindow(pX11IMData, 0, False); + if (pX11IMData->current_ic != NULL) + #endif +@@ -1471,7 +1471,7 @@ JNIEXPORT void JNICALL + Java_sun_awt_X11InputMethod_turnoffStatusWindow(JNIEnv *env, + jobject this) + { +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + X11InputMethodData *pX11IMData; + StatusWindow *statusWindow; + +@@ -1639,7 +1639,7 @@ JNIEXPORT jboolean JNICALL Java_sun_awt_ + JNIEXPORT void JNICALL Java_sun_awt_X11_XInputMethod_adjustStatusWindow + (JNIEnv *env, jobject this, jlong window) + { +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + AWT_LOCK(); + adjustStatusWindow(window); + AWT_UNLOCK(); +Index: b/jdk/src/solaris/native/sun/awt/fontpath.c +=================================================================== +--- a/jdk/src/solaris/native/sun/awt/fontpath.c ++++ b/jdk/src/solaris/native/sun/awt/fontpath.c +@@ -23,9 +23,9 @@ + * questions. + */ + +-#if defined(__linux__) ++#if defined(__linux__) || defined(__GLIBC__) + #include <string.h> +-#endif /* __linux__ */ ++#endif /* __linux__ || __GLIBC__ */ + #include <stdio.h> + #include <stdlib.h> + #include <strings.h> +Index: b/jdk/src/solaris/native/sun/awt/awt_Robot.c +=================================================================== +--- a/jdk/src/solaris/native/sun/awt/awt_Robot.c ++++ b/jdk/src/solaris/native/sun/awt/awt_Robot.c +@@ -45,7 +45,7 @@ + #include "wsutils.h" + #include "list.h" + #include "multiVis.h" +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + #include <sys/socket.h> + #endif + +Index: b/jdk/src/solaris/native/sun/java2d/j2d_md.h +=================================================================== +--- a/jdk/src/solaris/native/sun/java2d/j2d_md.h ++++ b/jdk/src/solaris/native/sun/java2d/j2d_md.h +@@ -30,7 +30,8 @@ + /* + * Linux and MACOSX's version of <sys/types.h> does not define intptr_t + */ +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) ++ + #include <stdint.h> + #endif /* __linux__ || MACOSX */ + +Index: b/jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c +=================================================================== +--- a/jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c ++++ b/jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c +@@ -804,7 +804,7 @@ static AnyFunc* hash_table_vis[HASH_SIZE + static int initialized; + static int usevis = JNI_TRUE; + +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + # define ULTRA_CHIP "sparc64" + #else + # define ULTRA_CHIP "sun4u" +Index: b/jdk/src/solaris/native/sun/net/dns/ResolverConfigurationImpl.c +=================================================================== +--- a/jdk/src/solaris/native/sun/net/dns/ResolverConfigurationImpl.c ++++ b/jdk/src/solaris/native/sun/net/dns/ResolverConfigurationImpl.c +@@ -33,7 +33,7 @@ + #include <strings.h> + #endif + +-#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) + #include <string.h> + #endif + +Index: b/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c +=================================================================== +--- a/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c ++++ b/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c +@@ -32,7 +32,7 @@ + #include <dlfcn.h> + #include <stdio.h> + #include <stdlib.h> +-#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) + #include <string.h> + #else + #include <strings.h> +Index: b/jdk/src/solaris/native/sun/xawt/XToolkit.c +=================================================================== +--- a/jdk/src/solaris/native/sun/xawt/XToolkit.c ++++ b/jdk/src/solaris/native/sun/xawt/XToolkit.c +@@ -27,7 +27,7 @@ + #include <X11/Xutil.h> + #include <X11/Xos.h> + #include <X11/Xatom.h> +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + #include <execinfo.h> + #endif + +@@ -799,7 +799,7 @@ JNIEXPORT jstring JNICALL Java_sun_awt_X + return ret; + } + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + void print_stack(void) + { + void *array[10]; +Index: b/jdk/src/solaris/native/java/nio/MappedByteBuffer.c +=================================================================== +--- a/jdk/src/solaris/native/java/nio/MappedByteBuffer.c ++++ b/jdk/src/solaris/native/java/nio/MappedByteBuffer.c +@@ -40,7 +40,7 @@ Java_java_nio_MappedByteBuffer_isLoaded0 + int result = 0; + int i = 0; + void *a = (void *) jlong_to_ptr(address); +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + unsigned char *vec = (unsigned char *)malloc(numPages * sizeof(char)); + #else + char *vec = (char *)malloc(numPages * sizeof(char)); +Index: b/jdk/src/solaris/native/java/util/TimeZone_md.c +=================================================================== +--- a/jdk/src/solaris/native/java/util/TimeZone_md.c ++++ b/jdk/src/solaris/native/java/util/TimeZone_md.c +@@ -55,7 +55,7 @@ + #define fileclose fclose + #endif + +-#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) + static const char *ETC_TIMEZONE_FILE = "/etc/timezone"; + static const char *ZONEINFO_DIR = "/usr/share/zoneinfo"; + static const char *DEFAULT_ZONEINFO_FILE = "/etc/localtime"; +@@ -69,7 +69,7 @@ static const char *DEFAULT_ZONEINFO_FILE + static const char *ETC_ENVIRONMENT_FILE = "/etc/environment"; + #endif + +-#if defined(__linux__) || defined(MACOSX) || defined(__solaris__) ++#if defined(__linux__) || defined(MACOSX) || defined(__solaris__) || defined(__GLIBC__) + + /* + * Returns a pointer to the zone ID portion of the given zoneinfo file +@@ -215,7 +215,7 @@ findZoneinfoFile(char *buf, size_t size, + return tz; + } + +-#if defined(__linux__) || defined(MACOSX) ++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__) + + /* + * Performs Linux specific mapping and returns a zone ID +@@ -231,7 +231,7 @@ getPlatformTimeZoneID() + char *buf; + size_t size; + +-#if defined(__linux__) ++#ifdef __linux__ || defined(__GLIBC__) + /* + * Try reading the /etc/timezone file for Debian distros. There's + * no spec of the file format available. This parsing assumes that +@@ -771,7 +771,7 @@ findJavaTZ_md(const char *java_home_dir) + if (*tz == ':') { + tz++; + } +-#if defined(__linux__) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) + /* Ignore "posix/" prefix on Linux. */ + if (strncmp(tz, "posix/", 6) == 0) { + tz += 6; +Index: b/jdk/src/solaris/native/java/io/io_util_md.c +=================================================================== +--- a/jdk/src/solaris/native/java/io/io_util_md.c ++++ b/jdk/src/solaris/native/java/io/io_util_md.c +@@ -99,7 +99,7 @@ fileOpen(JNIEnv *env, jobject this, jstr + WITH_PLATFORM_STRING(env, path, ps) { + FD fd; + +-#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) + /* Remove trailing slashes, since the kernel won't */ + char *p = (char *)ps + strlen(ps) - 1; + while ((p > ps) && (*p == '/')) +Index: b/jdk/src/solaris/native/java/lang/locale_str.h +=================================================================== +--- a/jdk/src/solaris/native/java/lang/locale_str.h ++++ b/jdk/src/solaris/native/java/lang/locale_str.h +@@ -48,7 +48,7 @@ + "gl", "gl_ES", + "he", "iw_IL", + "hr", "hr_HR", +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + "hs", "en_US", // used on Linux, not clear what it stands for + #endif + "hu", "hu_HU", +@@ -78,14 +78,14 @@ + "sv", "sv_SE", + "th", "th_TH", + "tr", "tr_TR", +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + "ua", "en_US", // used on Linux, not clear what it stands for + #endif + "uk", "uk_UA", + "vi", "vi_VN", + "wa", "wa_BE", + "zh", "zh_CN", +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + "bokmal", "nb_NO", + "bokm\xE5l", "nb_NO", + "catalan", "ca_ES", +@@ -146,13 +146,13 @@ static char *language_names[] = { + "POSIX", "en", + "cz", "cs", + "he", "iw", +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + "hs", "en", // used on Linux, not clear what it stands for + #endif + "id", "in", + "sh", "sr", // sh is deprecated + "su", "fi", +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + "ua", "en", // used on Linux, not clear what it stands for + "catalan", "ca", + "croatian", "hr", +@@ -195,7 +195,7 @@ static char *language_names[] = { + * Linux/Solaris script string to Java script name mapping table. + */ + static char *script_names[] = { +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + "cyrillic", "Cyrl", + "devanagari", "Deva", + "iqtelif", "Latn", +@@ -208,7 +208,7 @@ static char *script_names[] = { + * Linux/Solaris country string to ISO3166 string mapping table. + */ + static char *country_names[] = { +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + "RN", "US", // used on Linux, not clear what it stands for + #endif + "YU", "CS", // YU has been removed from ISO 3166 +Index: b/jdk/src/solaris/native/java/lang/UNIXProcess_md.c +=================================================================== +--- a/jdk/src/solaris/native/java/lang/UNIXProcess_md.c ++++ b/jdk/src/solaris/native/java/lang/UNIXProcess_md.c +@@ -397,7 +397,7 @@ __attribute_noinline__ + #ifdef START_CHILD_USE_CLONE + static pid_t + cloneChild(ChildStuff *c) { +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + #define START_CHILD_CLONE_STACK_SIZE (64 * 1024) + /* + * See clone(2). +Index: b/jdk/src/solaris/native/java/lang/java_props_md.c +=================================================================== +--- a/jdk/src/solaris/native/java/lang/java_props_md.c ++++ b/jdk/src/solaris/native/java/lang/java_props_md.c +@@ -23,7 +23,7 @@ + * questions. + */ + +-#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) + #include <stdio.h> + #include <ctype.h> + #endif +@@ -57,7 +57,7 @@ + #include "java_props.h" + + #if !defined(_ALLBSD_SOURCE) +-#ifdef __linux__ ++#ifdef __linux__ || defined(__GLIBC__) + #ifndef CODESET + #define CODESET _NL_CTYPE_CODESET_NAME + #endif +@@ -151,7 +151,7 @@ static int ParseLocale(JNIEnv* env, int + lc = setlocale(cat, NULL); + #endif + +-#ifndef __linux__ ++#if !defined(__linux__) && !defined(__GLIBC__) + if (lc == NULL) { + return 0; + } +@@ -331,7 +331,7 @@ static int ParseLocale(JNIEnv* env, int + * in order to use optimizations. */ + *std_encoding = (*p != '\0') ? p : "ISO8859-1"; + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + /* + * Remap the encoding string to a different value for japanese + * locales on linux so that customized converters are used instead +@@ -559,7 +559,7 @@ GetJavaProperties(JNIEnv *env) + sprops.unicode_encoding = "UnicodeBig"; + #endif + #else /* !_ALLBSD_SOURCE */ +-#ifdef __linux__ ++#ifdef __linux__ || defined(__GLIBC__) + #if __BYTE_ORDER == __LITTLE_ENDIAN + sprops.unicode_encoding = "UnicodeLittle"; + #else +Index: b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c +=================================================================== +--- a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c ++++ b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c +@@ -39,7 +39,7 @@ + #define BSD_COMP + #endif + #endif +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + #include <unistd.h> + #include <sys/utsname.h> + #include <netinet/ip.h> +@@ -299,7 +299,7 @@ Java_java_net_PlainDatagramSocketImpl_di + /* The fdObj'fd */ + jint fd; + +-#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) + SOCKADDR addr; + int len; + #endif +@@ -309,19 +309,26 @@ Java_java_net_PlainDatagramSocketImpl_di + } + fd = (*env)->GetIntField(env, fdObj, IO_fd_fdID); + +-#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) + memset(&addr, 0, sizeof(addr)); + #ifdef AF_INET6 + if (ipv6_available()) { + struct sockaddr_in6 *him6 = (struct sockaddr_in6 *)&addr; ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) ++ him6->sin6_family = AF_INET6; ++#else + him6->sin6_family = AF_UNSPEC; ++#endif + len = sizeof(struct sockaddr_in6); + } else + #endif + { + struct sockaddr_in *him4 = (struct sockaddr_in*)&addr; ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + him4->sin_family = AF_UNSPEC; ++#else + len = sizeof(struct sockaddr_in); ++#endif + } + JVM_Connect(fd, (struct sockaddr *)&addr, len); + +Index: b/jdk/src/solaris/native/java/net/Inet6AddressImpl.c +=================================================================== +--- a/jdk/src/solaris/native/java/net/Inet6AddressImpl.c ++++ b/jdk/src/solaris/native/java/net/Inet6AddressImpl.c +@@ -75,7 +75,7 @@ Java_java_net_Inet6AddressImpl_getLocalH + } else { + // ensure null-terminated + hostname[NI_MAXHOST] = '\0'; +-#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) + /* On Linux/FreeBSD gethostname() says "host.domain.sun.com". On + * Solaris gethostname() says "host", so extra work is needed. + */ +@@ -805,7 +805,7 @@ Java_java_net_Inet6AddressImpl_isReachab + case ENETUNREACH: /* Network Unreachable */ + case EAFNOSUPPORT: /* Address Family not supported */ + case EADDRNOTAVAIL: /* address is not available on the remote machine */ +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + case EINVAL: + case EHOSTUNREACH: + /* +Index: b/jdk/src/solaris/native/java/net/Inet4AddressImpl.c +=================================================================== +--- a/jdk/src/solaris/native/java/net/Inet4AddressImpl.c ++++ b/jdk/src/solaris/native/java/net/Inet4AddressImpl.c +@@ -645,7 +645,7 @@ ping4(JNIEnv *env, jint fd, struct socka + n = sendto(fd, sendbuf, plen, 0, (struct sockaddr *)him, + sizeof(struct sockaddr)); + if (n < 0 && errno != EINPROGRESS ) { +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + if (errno != EINVAL && errno != EHOSTUNREACH) + /* + * On some Linux versions, when a socket is bound to the loopback +@@ -811,7 +811,7 @@ Java_java_net_Inet4AddressImpl_isReachab + case ENETUNREACH: /* Network Unreachable */ + case EAFNOSUPPORT: /* Address Family not supported */ + case EADDRNOTAVAIL: /* address is not available on the remote machine */ +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + case EINVAL: + case EHOSTUNREACH: + /* +Index: b/jdk/src/solaris/native/java/net/NetworkInterface.c +=================================================================== +--- a/jdk/src/solaris/native/java/net/NetworkInterface.c ++++ b/jdk/src/solaris/native/java/net/NetworkInterface.c +@@ -63,17 +63,17 @@ + #define _PATH_PROCNET_IFINET6 "/proc/net/if_inet6" + #endif + +-#if defined(_ALLBSD_SOURCE) ++#if defined(_ALLBSD_SOURCE) || defined(__FreeBSD_kernel__) + #include <sys/param.h> + #include <sys/ioctl.h> + #include <sys/sockio.h> +-#if defined(__APPLE__) ++#if defined(__APPLE__) || defined(__FreeBSD_kernel__) + #include <net/ethernet.h> + #include <net/if_var.h> + #include <net/if_dl.h> + #include <netinet/in_var.h> +-#include <ifaddrs.h> + #endif ++#include <ifaddrs.h> + #endif + + #include "jvm.h" +@@ -1821,7 +1821,11 @@ static int getMacAddress(JNIEnv *env, in + * try the old way. + */ + memset(&lif, 0, sizeof(lif)); ++#if defined(__FreeBSD_kernel__) ++ strcpy(lif.lifr_name, ifname); ++#else + strlcpy(lif.lifr_name, ifname, sizeof(lif.lifr_name)); ++#endif + + if (ioctl(sock, SIOCGLIFHWADDR, &lif) != -1) { + struct sockaddr_dl *sp; +@@ -1907,7 +1911,7 @@ static int getFlags(int sock, const char + + + /** BSD **/ +-#ifdef _ALLBSD_SOURCE ++#if defined(_ALLBSD_SOURCE) || defined(__FreeBSD_kernel__) + /* Open socket for further ioct calls, try v4 socket first and + * if it falls return v6 socket + */ +@@ -2036,7 +2040,11 @@ static netif *enumIPv6Interfaces(JNIEnv + 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)); + + if (ioctl(sock, SIOCGIFNETMASK_IN6, (caddr_t)&ifr6) < 0) { +Index: b/jdk/src/solaris/native/java/net/net_util_md.c +=================================================================== +--- a/jdk/src/solaris/native/java/net/net_util_md.c ++++ b/jdk/src/solaris/native/java/net/net_util_md.c +@@ -56,6 +56,11 @@ + #include <net/route.h> + #include <sys/utsname.h> + ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) ++#include <sys/param.h> ++#include <sys/sysctl.h> ++#endif ++ + #ifndef IPV6_FLOWINFO_SEND + #define IPV6_FLOWINFO_SEND 33 + #endif +Index: b/jdk/src/solaris/native/java/net/PlainSocketImpl.c +=================================================================== +--- a/jdk/src/solaris/native/java/net/PlainSocketImpl.c ++++ b/jdk/src/solaris/native/java/net/PlainSocketImpl.c +@@ -32,7 +32,7 @@ + #endif + #include <netinet/tcp.h> /* Defines TCP_NODELAY, needed for 2.6 */ + #include <netinet/in.h> +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + #include <netinet/ip.h> + #endif + #include <netdb.h> +@@ -41,7 +41,7 @@ + #ifdef __solaris__ + #include <fcntl.h> + #endif +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + #include <unistd.h> + #endif + +@@ -467,7 +467,7 @@ Java_java_net_PlainSocketImpl_socketConn + /* report the appropriate exception */ + if (connect_rv < 0) { + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + /* + * Linux/GNU distribution setup /etc/hosts so that + * InetAddress.getLocalHost gets back the loopback address +Index: b/jdk/src/solaris/native/java/net/net_util_md.h +=================================================================== +--- a/jdk/src/solaris/native/java/net/net_util_md.h ++++ b/jdk/src/solaris/native/java/net/net_util_md.h +@@ -47,7 +47,7 @@ + close subroutine does not return until the select call returns. + ... + */ +-#if defined(__linux__) || defined(MACOSX) || defined (_AIX) ++#if defined(__linux__) || defined(MACOSX) || defined (_AIX) || defined(__GLIBC__) + extern int NET_Timeout(int s, long timeout); + extern int NET_Read(int s, void* buf, size_t len); + extern int NET_RecvFrom(int s, void *buf, int len, unsigned int flags, +@@ -179,7 +179,7 @@ extern jint NET_Wait(JNIEnv *env, jint f + /************************************************************************ + * Utilities + */ +-#ifdef __linux__ ++#if defined(__linux__) + extern int kernelIsV24(); + #endif + +Index: b/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java +=================================================================== +--- a/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java ++++ b/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java +@@ -306,7 +306,7 @@ public class FcFontConfiguration extends + + super.setOsNameAndVersion(); + +- if (!osName.equals("Linux")) { ++ if (!(osName.equals("Linux") || osName.equals("GNU/kFreeBSD"))) { + return; + } + try { +Index: b/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java +=================================================================== +--- a/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java ++++ b/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java +@@ -161,6 +161,7 @@ public class UnixPrintServiceLookup exte + + static boolean isBSD() { + return (osname.equals("Linux") || ++ osname.equals("GNU/kFreeBSD") || + osname.contains("OS X")); + } + +Index: b/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java +=================================================================== +--- a/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java ++++ b/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java +@@ -102,9 +102,7 @@ class LinuxFileStore + LinuxNativeDispatcher.fgetxattr(fd, name, 0L, 0); + return true; + } catch (UnixException e) { +- // attribute does not exist +- if (e.errno() == UnixConstants.ENODATA) +- return true; ++ return false; + } finally { + UnixNativeDispatcher.close(fd); + } +Index: b/jdk/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java +=================================================================== +--- a/jdk/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java ++++ b/jdk/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java +@@ -238,9 +238,6 @@ class LinuxDosFileAttributeView + } + throw new UnixException("Value of " + DOS_XATTR_NAME + " attribute is invalid"); + } catch (UnixException x) { +- // default value when attribute does not exist +- if (x.errno() == ENODATA) +- return 0; + throw x; + } finally { + buffer.release(); +Index: b/jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java +=================================================================== +--- a/jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java ++++ b/jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java +@@ -61,6 +61,8 @@ public class DefaultFileSystemProvider { + return createProvider("sun.nio.fs.SolarisFileSystemProvider"); + if (osname.equals("Linux")) + return createProvider("sun.nio.fs.LinuxFileSystemProvider"); ++ if (osname.equals("GNU/kFreeBSD")) ++ return createProvider("sun.nio.fs.BsdFileSystemProvider"); + if (osname.contains("OS X")) + return createProvider("sun.nio.fs.MacOSXFileSystemProvider"); + if (osname.equals("AIX")) +Index: b/jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java +=================================================================== +--- a/jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java ++++ b/jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java +@@ -64,7 +64,7 @@ public class DefaultAsynchronousChannelP + .doPrivileged(new GetPropertyAction("os.name")); + if (osname.equals("SunOS")) + return createProvider("sun.nio.ch.SolarisAsynchronousChannelProvider"); +- if (osname.equals("Linux")) ++ if (osname.equals("Linux") || osname.equals("GNU/kFreeBSD")) + return createProvider("sun.nio.ch.LinuxAsynchronousChannelProvider"); + if (osname.contains("OS X")) + return createProvider("sun.nio.ch.BsdAsynchronousChannelProvider"); +Index: b/jdk/src/solaris/classes/sun/awt/X11/XScrollbarPeer.java +=================================================================== +--- a/jdk/src/solaris/classes/sun/awt/X11/XScrollbarPeer.java ++++ b/jdk/src/solaris/classes/sun/awt/X11/XScrollbarPeer.java +@@ -74,7 +74,7 @@ class XScrollbarPeer extends XComponentP + * Currently uses hardcoded values + */ + private int getDefaultDimension() { +- if (System.getProperty("os.name").equals("Linux")) { ++ if (System.getProperty("os.name").equals("Linux") || System.getProperty("os.name").equals("GNU/kFreeBSD")) { + return DEFAULT_WIDTH_LINUX; + } else { + return DEFAULT_WIDTH_SOLARIS; +Index: b/jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h +=================================================================== +--- a/jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h ++++ b/jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h +@@ -61,7 +61,7 @@ + #define log1p jlog1p + #define expm1 jexpm1 + +-#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) + #define __ieee754_sqrt __j__ieee754_sqrt + #define __ieee754_acos __j__ieee754_acos + #define __ieee754_log __j__ieee754_log +Index: b/jdk/src/share/classes/sun/font/FontUtilities.java +=================================================================== +--- a/jdk/src/share/classes/sun/font/FontUtilities.java ++++ b/jdk/src/share/classes/sun/font/FontUtilities.java +@@ -76,7 +76,7 @@ public final class FontUtilities { + String osName = System.getProperty("os.name", "unknownOS"); + isSolaris = osName.startsWith("SunOS"); + +- isLinux = osName.startsWith("Linux"); ++ isLinux = osName.startsWith("Linux") || osName.equals("GNU/kFreeBSD"); + + isMacOSX = osName.contains("OS X"); // TODO: MacOSX + +Index: b/jdk/src/share/classes/sun/print/PSPrinterJob.java +=================================================================== +--- a/jdk/src/share/classes/sun/print/PSPrinterJob.java ++++ b/jdk/src/share/classes/sun/print/PSPrinterJob.java +@@ -1587,7 +1587,9 @@ public class PSPrinterJob extends Raster + } + + String osname = System.getProperty("os.name"); +- if (osname.equals("Linux") || osname.contains("OS X")) { ++ if (osname.equals("Linux") || ++ osname.equals("GNU/kFreeBSD") || ++ osname.contains("OS X")) { + execCmd = new String[ncomps]; + execCmd[n++] = "/usr/bin/lpr"; + if ((pFlags & PRINTER) != 0) { +Index: b/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java +=================================================================== +--- a/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java ++++ b/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java +@@ -1306,6 +1306,7 @@ public class ExtendedCharsets + String osName = AccessController.doPrivileged( + new GetPropertyAction("os.name")); + if ("SunOS".equals(osName) || "Linux".equals(osName) || "AIX".equals(osName) ++ || "GNU/kFreeBSD".equals(osName) + || osName.contains("OS X")) { + charset("x-COMPOUND_TEXT", "COMPOUND_TEXT", + new String[] { +Index: b/jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java +=================================================================== +--- a/jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java ++++ b/jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java +@@ -49,6 +49,7 @@ public class GSSManagerImpl extends GSSM + String osname = System.getProperty("os.name"); + if (osname.startsWith("SunOS") || + osname.contains("OS X") || ++ osname.startsWith("GNU/kFreeBSD") || + osname.startsWith("Linux")) { + return new Boolean(System.getProperty + (USE_NATIVE_PROP)); +Index: b/jdk/src/solaris/native/sun/net/portconfig.c +=================================================================== +--- a/jdk/src/solaris/native/sun/net/portconfig.c ++++ b/jdk/src/solaris/native/sun/net/portconfig.c +@@ -28,7 +28,7 @@ + #include <unistd.h> + #include <errno.h> + +-#if defined(_ALLBSD_SOURCE) ++#if defined(_ALLBSD_SOURCE) || defined (__FreeBSD_kernel__) + #include <sys/sysctl.h> + #endif + +@@ -67,7 +67,7 @@ static int getPortRange(struct portrange + range->lower = net_getParam("/dev/tcp", "tcp_smallest_anon_port"); + return 0; + } +-#elif defined(_ALLBSD_SOURCE) ++#elif defined(_ALLBSD_SOURCE) || defined (__FreeBSD_kernel__) + { + int ret; + size_t size = sizeof(range->lower); +Index: b/jdk/src/solaris/classes/sun/net/PortConfig.java +=================================================================== +--- a/jdk/src/solaris/classes/sun/net/PortConfig.java ++++ b/jdk/src/solaris/classes/sun/net/PortConfig.java +@@ -63,6 +63,9 @@ public final class PortConfig { + // /usr/sbin/no -a | fgrep ephemeral + defaultLower = 32768; + defaultUpper = 65535; ++ } else if (os.contains("FreeBSD")) { ++ defaultLower = 10000; ++ defaultUpper = 65535; + } else { + throw new InternalError( + "sun.net.PortConfig: unknown OS"); +Index: b/jdk/src/share/classes/java/awt/GraphicsEnvironment.java +=================================================================== +--- a/jdk/src/share/classes/java/awt/GraphicsEnvironment.java ++++ b/jdk/src/share/classes/java/awt/GraphicsEnvironment.java +@@ -180,6 +180,7 @@ public abstract class GraphicsEnvironmen + ("Linux".equals(osName) || + "SunOS".equals(osName) || + "FreeBSD".equals(osName) || ++ "GNU/kFreeBSD".equals(osName) || + "NetBSD".equals(osName) || + "OpenBSD".equals(osName) || + "AIX".equals(osName)) && +Index: b/jdk/make/mapfiles/libattach/mapfile-bsd +=================================================================== +--- /dev/null ++++ b/jdk/make/mapfiles/libattach/mapfile-bsd +@@ -0,0 +1,41 @@ ++# ++# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. ++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++# ++# This code is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License version 2 only, as ++# published by the Free Software Foundation. Oracle designates this ++# particular file as subject to the "Classpath" exception as provided ++# by Oracle in the LICENSE file that accompanied this code. ++# ++# This code is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++# version 2 for more details (a copy is included in the LICENSE file that ++# accompanied this code). ++# ++# You should have received a copy of the GNU General Public License version ++# 2 along with this work; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++# ++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++# or visit www.oracle.com if you need additional information or have any ++# questions. ++# ++ ++# Define public interface. ++ ++SUNWprivate_1.1 { ++ global: ++ Java_sun_tools_attach_BsdVirtualMachine_checkPermissions; ++ Java_sun_tools_attach_BsdVirtualMachine_close; ++ Java_sun_tools_attach_BsdVirtualMachine_connect; ++ Java_sun_tools_attach_BsdVirtualMachine_createAttachFile; ++ Java_sun_tools_attach_BsdVirtualMachine_getTempDir; ++ Java_sun_tools_attach_BsdVirtualMachine_sendQuitTo; ++ Java_sun_tools_attach_BsdVirtualMachine_socket; ++ Java_sun_tools_attach_BsdVirtualMachine_read; ++ Java_sun_tools_attach_BsdVirtualMachine_write; ++ local: ++ *; ++}; +Index: b/jdk/make/lib/ServiceabilityLibraries.gmk +=================================================================== +--- a/jdk/make/lib/ServiceabilityLibraries.gmk ++++ b/jdk/make/lib/ServiceabilityLibraries.gmk +@@ -34,7 +34,7 @@ endif + ifneq ($(OPENJDK_TARGET_OS), linux) + LIBATTACH_EXCLUDE_FILES += LinuxVirtualMachine.c + endif +-ifneq ($(OPENJDK_TARGET_OS), macosx) ++ifeq (,$(findstring $(OPENJDK_TARGET_OS), bsd macosx)) + LIBATTACH_EXCLUDE_FILES += BsdVirtualMachine.c + endif + ifneq ($(OPENJDK_TARGET_OS),aix) +@@ -160,6 +160,7 @@ $(eval $(call SetupNativeCompilation,BUI + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_linux := $(LIBDL), \ ++ LDFLAGS_SUFFIX_bsd := $(LIBDL), \ + LDFLAGS_SUFFIX_solaris := $(LIBDL) -lc, \ + LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ +@@ -189,6 +190,7 @@ $(eval $(call SetupNativeCompilation,BUI + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_linux := $(LIBDL), \ ++ LDFLAGS_SUFFIX_bsd := $(LIBDL), \ + LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX) $(LIBDL), \ + LDFLAGS_SUFFIX_macosx := $(LIBDL), \ + LDFLAGS_SUFFIX_solaris := -lc, \ +@@ -260,6 +262,7 @@ $(eval $(call SetupNativeCompilation,BUI + $(call SET_SHARED_LIBRARY_ORIGIN) \ + $(LIBINSTRUMENT_LDFLAGS), \ + LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \ ++ LDFLAGS_bsd := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \ + LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \ + LDFLAGS_macosx := -Xlinker -all_load $(JDK_OUTPUTDIR)/objs/libjli_static.a \ + -framework Cocoa -framework Security -framework ApplicationServices, \ +@@ -267,6 +270,7 @@ $(eval $(call SetupNativeCompilation,BUI + LDFLAGS_SUFFIX_macosx := -liconv $(LIBZ), \ + LDFLAGS_SUFFIX_solaris := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL) -lc, \ + LDFLAGS_SUFFIX_linux := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL), \ ++ LDFLAGS_SUFFIX_bsd := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL), \ + LDFLAGS_SUFFIX_aix := $(LIBZ) -L$(JDK_OUTPUTDIR)/objs -ljli_static $(LIBDL),\ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ +@@ -379,6 +383,7 @@ $(eval $(call SetupNativeCompilation,BUI + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_windows := wsock32.lib winmm.lib advapi32.lib, \ + LDFLAGS_SUFFIX_linux := $(LIBDL), \ ++ LDFLAGS_SUFFIX_bsd := $(LIBDL), \ + LDFLAGS_SUFFIX_macosx := $(LIBDL), \ + LDFLAGS_SUFFIX_solaris := -lsocket -lnsl $(LIBDL) -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ +Index: b/jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider +=================================================================== +--- a/jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider ++++ b/jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider +@@ -31,4 +31,5 @@ + #[windows]sun.tools.attach.WindowsAttachProvider + #[linux]sun.tools.attach.LinuxAttachProvider + #[macosx]sun.tools.attach.BsdAttachProvider ++#[bsd]sun.tools.attach.BsdAttachProvider + #[aix]sun.tools.attach.AixAttachProvider +Index: b/jdk/make/CompileJavaClasses.gmk +=================================================================== +--- a/jdk/make/CompileJavaClasses.gmk ++++ b/jdk/make/CompileJavaClasses.gmk +@@ -135,16 +135,22 @@ ifneq ($(OPENJDK_TARGET_OS), linux) + endif + + ifneq ($(OPENJDK_TARGET_OS), macosx) ++ EXFILES += sun/nio/fs/MacOSXFileSystemProvider.java \ ++ sun/nio/fs/MacOSXFileSystem.java \ ++ sun/nio/fs/MacOSXNativeDispatcher.java ++endif ++ ++ifeq (, $(filter $(OPENJDK_TARGET_OS), bsd macosx)) + EXFILES += sun/nio/ch/BsdAsynchronousChannelProvider.java \ + sun/nio/ch/KQueue.java \ ++ sun/nio/ch/KQueueArrayWrapper.java \ + sun/nio/ch/KQueuePort.java \ ++ sun/nio/ch/KQueueSelectorImpl.java \ ++ sun/nio/ch/KQueueSelectorProvider.java \ + sun/nio/fs/BsdFileStore.java \ + sun/nio/fs/BsdFileSystem.java \ + sun/nio/fs/BsdFileSystemProvider.java \ + sun/nio/fs/BsdNativeDispatcher.java \ +- sun/nio/fs/MacOSXFileSystemProvider.java \ +- sun/nio/fs/MacOSXFileSystem.java \ +- sun/nio/fs/MacOSXNativeDispatcher.java \ + sun/tools/attach/BsdAttachProvider.java \ + sun/tools/attach/BsdVirtualMachine.java + endif +Index: b/jdk/src/solaris/native/sun/management/OperatingSystemImpl.c +=================================================================== +--- a/jdk/src/solaris/native/sun/management/OperatingSystemImpl.c ++++ b/jdk/src/solaris/native/sun/management/OperatingSystemImpl.c +@@ -352,7 +352,13 @@ Java_sun_management_OperatingSystemImpl_ + size_t rlen; + + mib[0] = CTL_HW; ++#if defined (HW_MEMSIZE) // Apple + mib[1] = HW_MEMSIZE; ++#elif defined(HW_PHYSMEM) // Most of BSD ++ mib[1] = HW_PHYSMEM; ++#else ++ #error No ways to get physmem ++#endif + rlen = sizeof(result); + if (sysctl(mib, 2, &result, &rlen, NULL, 0) != 0) { + throw_internal_error(env, "sysctl failed"); +Index: b/jdk/make/lib/SoundLibraries.gmk +=================================================================== +--- a/jdk/make/lib/SoundLibraries.gmk ++++ b/jdk/make/lib/SoundLibraries.gmk +@@ -71,6 +71,11 @@ ifeq ($(OPENJDK_TARGET_OS), linux) + LIBJSOUND_CFLAGS += -DX_PLATFORM=X_LINUX + endif # OPENJDK_TARGET_OS linux + ++ifeq ($(OPENJDK_TARGET_OS), bsd) ++ EXTRA_SOUND_JNI_LIBS += jsoundalsa ++ LIBJSOUND_CFLAGS += -DX_PLATFORM=X_BSD ++endif # OPENJDK_TARGET_OS bsd ++ + ifeq ($(OPENJDK_TARGET_OS), aix) + LIBJSOUND_CFLAGS += -DX_PLATFORM=X_AIX + endif # OPENJDK_TARGET_OS aix +Index: b/jdk/make/lib/CoreLibraries.gmk +=================================================================== +--- a/jdk/make/lib/CoreLibraries.gmk ++++ b/jdk/make/lib/CoreLibraries.gmk +@@ -199,6 +199,7 @@ $(eval $(call SetupNativeCompilation,BUI + LDFLAGS_SUFFIX_posix := -ljvm -lverify, \ + LDFLAGS_SUFFIX_solaris := -lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM) -lc, \ + LDFLAGS_SUFFIX_linux := $(LIBDL) $(BUILD_LIBFDLIBM), \ ++ LDFLAGS_SUFFIX_bsd := $(LIBDL) $(BUILD_LIBFDLIBM), \ + LDFLAGS_SUFFIX_aix := $(LIBDL) $(BUILD_LIBFDLIBM) -lm,\ + LDFLAGS_SUFFIX_macosx := -L$(JDK_OUTPUTDIR)/objs/ -lfdlibm \ + -framework CoreFoundation \ +@@ -268,6 +269,7 @@ $(eval $(call SetupNativeCompilation,BUI + -export:ZIP_ReadEntry -export:ZIP_GetNextEntry -export:ZIP_CRC32 jvm.lib \ + $(WIN_JAVA_LIB), \ + LDFLAGS_SUFFIX_linux := -ljvm -ljava $(LIBZ), \ ++ LDFLAGS_SUFFIX_bsd := -ljvm -ljava $(LIBZ), \ + LDFLAGS_SUFFIX_solaris := -ljvm -ljava $(LIBZ) -lc, \ + LDFLAGS_SUFFIX_aix := -ljvm -ljava $(LIBZ),\ + LDFLAGS_SUFFIX_macosx := $(LIBZ) -ljava -ljvm, \ +@@ -414,10 +416,12 @@ $(eval $(call SetupNativeCompilation,BUI + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ ++ LDFLAGS_bsd := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ + LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ + LDFLAGS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \ + LDFLAGS_SUFFIX_solaris := $(LIBZ) $(LIBDL) -lc, \ + LDFLAGS_SUFFIX_linux := $(LIBZ) $(LIBDL) -lc -lpthread, \ ++ LDFLAGS_SUFFIX_bsd := $(LIBZ) $(LIBDL) -lc -pthread, \ + LDFLAGS_SUFFIX_aix := $(LIBZ) $(LIBDL),\ + LDFLAGS_SUFFIX_macosx := $(LIBZ), \ + LDFLAGS_SUFFIX_windows := \ +Index: b/jdk/make/lib/NioLibraries.gmk +=================================================================== +--- a/jdk/make/lib/NioLibraries.gmk ++++ b/jdk/make/lib/NioLibraries.gmk +@@ -77,6 +77,24 @@ ifeq ($(OPENJDK_TARGET_OS), linux) + UnixNativeDispatcher.c + endif + ++ifeq ($(OPENJDK_TARGET_OS), bsd) ++ BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) ++# BUILD_LIBNIO_SRC += $(JDK_TOPDIR)/src/bsd/native/sun/nio/ch ++ BUILD_LIBNIO_FILES += \ ++ BsdNativeDispatcher.c \ ++ GnomeFileTypeDetector.c \ ++ InheritedChannel.c \ ++ KQueue.c \ ++ KQueueArrayWrapper.c \ ++ KQueuePort.c \ ++ NativeThread.c \ ++ PollArrayWrapper.c \ ++ UnixAsynchronousServerSocketChannelImpl.c \ ++ UnixAsynchronousSocketChannelImpl.c \ ++ UnixCopyFile.c \ ++ UnixNativeDispatcher.c ++endif ++ + ifeq ($(OPENJDK_TARGET_OS), macosx) + BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) + BUILD_LIBNIO_SRC += $(JDK_TOPDIR)/src/macosx/native/sun/nio/ch +@@ -143,6 +161,7 @@ $(eval $(call SetupNativeCompilation,BUI + LDFLAGS := $(LDFLAGS_JDKLIB) $(BUILD_LIBNIO_LDFLAGS) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_linux := -ljava -lnet -lpthread $(LIBDL), \ ++ LDFLAGS_SUFFIX_bsd := -ljava -lnet -lpthread $(LIBDL), \ + LDFLAGS_SUFFIX_aix := -ljava -lnet $(LIBDL),\ + LDFLAGS_SUFFIX_solaris := -ljvm -lsocket -lposix4 $(LIBDL) \ + -lsendfile -ljava -lnet -lc, \ +@@ -192,6 +211,7 @@ ifeq ($(OPENJDK_TARGET_OS_API), posix) + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_linux := -lpthread $(LIBDL) -ljava -ljvm, \ ++ LDFLAGS_SUFFIX_bsd := -lpthread $(LIBDL) -ljava -ljvm, \ + LDFLAGS_SUFFIX_posix := -lnio -lnet, \ + LDFLAGS_SUFFIX_solaris := -lsocket -ljava -ljvm -lc, \ + LDFLAGS_SUFFIX_macosx := -ljava -ljvm, \ +Index: b/jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCM.c +=================================================================== +--- a/jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCM.c ++++ b/jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCM.c +@@ -675,6 +675,7 @@ int xrun_recovery(AlsaPcmInfo* info, int + return -1; + } + return 1; ++#ifdef __linux__ + } else if (err == -ESTRPIPE) { + TRACE0("xrun_recovery: suspended.\n"); + ret = snd_pcm_resume(info->handle); +@@ -690,6 +691,7 @@ int xrun_recovery(AlsaPcmInfo* info, int + return -1; + } + return 1; ++#endif + } else if (err == -EAGAIN) { + TRACE0("xrun_recovery: EAGAIN try again flag.\n"); + return 0; +Index: b/jdk/make/CompileLaunchers.gmk +=================================================================== +--- a/jdk/make/CompileLaunchers.gmk ++++ b/jdk/make/CompileLaunchers.gmk +@@ -163,13 +163,13 @@ define SetupLauncher + -DLAUNCHER_NAME='"$(LAUNCHER_NAME)"' \ + -DPROGNAME='"$1"' $(DPACKAGEPATH) \ + $2, \ +- CFLAGS_linux := -fPIC, \ ++ CFLAGS_bsd := -fPIC, \ + CFLAGS_solaris := -KPIC -DHAVE_GETHRTIME, \ + LDFLAGS := $(LDFLAGS_JDKEXE) \ + $(ORIGIN_ARG) \ + $$($1_LDFLAGS), \ + LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_NAME,$1), \ +- LDFLAGS_linux := -lpthread \ ++ LDFLAGS_bsd := -lpthread \ + $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \ + LDFLAGS_solaris := $$($1_LDFLAGS_solaris) \ + $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \ +@@ -178,7 +178,7 @@ define SetupLauncher + LDFLAGS_SUFFIX_posix := $4, \ + LDFLAGS_SUFFIX_windows := $$($1_WINDOWS_JLI_LIB) \ + $(JDK_OUTPUTDIR)/objs/libjava/java.lib advapi32.lib $5, \ +- LDFLAGS_SUFFIX_linux := -L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli $(LIBDL) -lc, \ ++ LDFLAGS_SUFFIX_bsd := -L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli $(LIBDL) -lc, \ + LDFLAGS_SUFFIX_solaris := -L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli -lthread $(LIBDL) -lc, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/$1_objs$(OUTPUT_SUBDIR), \ + OUTPUT_DIR := $$($1_OUTPUT_DIR_ARG)$(OUTPUT_SUBDIR), \ +@@ -538,7 +538,7 @@ ifeq ($(OPENJDK_TARGET_OS), solaris) + endif + endif + +-ifeq ($(OPENJDK_TARGET_OS), linux) ++ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd), ) + BUILD_JEXEC := 1 + endif # OPENJDK_TARGET_OS + +@@ -554,7 +554,7 @@ ifeq ($(BUILD_JEXEC), 1) + BUILD_JEXEC_SRC := $(JDK_TOPDIR)/src/solaris/bin + endif + +- ifeq ($(OPENJDK_TARGET_OS), linux) ++ ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd), ) + BUILD_JEXEC_DST_DIR := $(JDK_OUTPUTDIR)/lib + BUILD_JEXEC_INC += -I$(JDK_TOPDIR)/src/share/bin + endif +@@ -590,7 +590,7 @@ endif + # The java-rmi.cgi script in bin/ only gets delivered in certain situations + # + JAVA_RMI_CGI := $(JDK_OUTPUTDIR)/bin$(OUTPUT_SUBDIR)/java-rmi.cgi +-ifeq ($(OPENJDK_TARGET_OS), linux) ++ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd), ) + BUILD_LAUNCHERS += $(JAVA_RMI_CGI) + endif + ifeq ($(OPENJDK_TARGET_OS), solaris) +@@ -621,11 +621,11 @@ BUILD_JSPAWNHELPER_DST_DIR := $(JDK_OUTP + LINK_JSPAWNHELPER_OBJECTS := $(JDK_OUTPUTDIR)/objs/libjava/childproc.o + LINK_JSPAWNHELPER_FLAGS := + +-ifneq ($(findstring $(OPENJDK_TARGET_OS), macosx solaris aix), ) ++ifneq ($(findstring $(OPENJDK_TARGET_OS), bsd macosx solaris aix), ) + BUILD_JSPAWNHELPER := 1 + endif + +-ifeq ($(OPENJDK_TARGET_OS), macosx) ++ifeq ($(OPENJDK_TARGET_OS), bsd macosx) + BUILD_JSPAWNHELPER_DST_DIR := $(JDK_OUTPUTDIR)/lib + endif + +Index: b/jdk/src/share/bin/jli_util.h +=================================================================== +--- a/jdk/src/share/bin/jli_util.h ++++ b/jdk/src/share/bin/jli_util.h +@@ -83,7 +83,7 @@ void JLI_CmdToArgs(char *cmdline); + #ifdef __solaris__ + #define JLI_Lseek llseek + #endif +-#ifdef __linux__ ++#if defined(__linux__) || defined (__GLIBC__) + #define _LARGFILE64_SOURCE + #define JLI_Lseek lseek64 + #endif +Index: b/jdk/make/data/classlist/classlist.bsd +=================================================================== +--- /dev/null ++++ b/jdk/make/data/classlist/classlist.bsd +@@ -0,0 +1,2454 @@ ++com/sun/java/swing/SwingUtilities3 ++com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI ++com/sun/swing/internal/plaf/basic/resources/basic ++com/sun/swing/internal/plaf/metal/resources/metal ++java/applet/Applet ++java/awt/AWTEvent ++java/awt/AWTEvent$1 ++java/awt/AWTEventMulticaster ++java/awt/AWTKeyStroke ++java/awt/AWTKeyStroke$1 ++java/awt/ActiveEvent ++java/awt/Adjustable ++java/awt/AlphaComposite ++java/awt/BasicStroke ++java/awt/BorderLayout ++java/awt/BufferCapabilities ++java/awt/Canvas ++java/awt/CardLayout ++java/awt/CardLayout$Card ++java/awt/Color ++java/awt/Component ++java/awt/Component$1 ++java/awt/Component$3 ++java/awt/Component$AWTTreeLock ++java/awt/Component$AccessibleAWTComponent ++java/awt/Component$BaselineResizeBehavior ++java/awt/Component$BltBufferStrategy ++java/awt/Component$BltSubRegionBufferStrategy ++java/awt/Component$DummyRequestFocusController ++java/awt/Component$FlipBufferStrategy ++java/awt/ComponentOrientation ++java/awt/Composite ++java/awt/Conditional ++java/awt/Container ++java/awt/Container$1 ++java/awt/Container$AccessibleAWTContainer ++java/awt/ContainerOrderFocusTraversalPolicy ++java/awt/Cursor ++java/awt/Cursor$1 ++java/awt/DefaultFocusTraversalPolicy ++java/awt/DefaultKeyboardFocusManager ++java/awt/DefaultKeyboardFocusManager$1 ++java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent ++java/awt/DefaultKeyboardFocusManager$TypeAheadMarker ++java/awt/Dialog ++java/awt/Dialog$ModalExclusionType ++java/awt/Dialog$ModalityType ++java/awt/Dimension ++java/awt/Event ++java/awt/EventDispatchThread ++java/awt/EventDispatchThread$1 ++java/awt/EventDispatchThread$HierarchyEventFilter ++java/awt/EventFilter ++java/awt/EventFilter$FilterAction ++java/awt/EventQueue ++java/awt/EventQueue$1 ++java/awt/EventQueue$1AWTInvocationLock ++java/awt/EventQueue$2 ++java/awt/EventQueue$3 ++java/awt/EventQueue$4 ++java/awt/EventQueue$5 ++java/awt/FlowLayout ++java/awt/FocusTraversalPolicy ++java/awt/Font ++java/awt/Font$FontAccessImpl ++java/awt/FontFormatException ++java/awt/FontMetrics ++java/awt/Frame ++java/awt/Frame$1 ++java/awt/Graphics ++java/awt/Graphics2D ++java/awt/GraphicsCallback ++java/awt/GraphicsCallback$PaintCallback ++java/awt/GraphicsConfiguration ++java/awt/GraphicsDevice ++java/awt/GraphicsEnvironment ++java/awt/GraphicsEnvironment$1 ++java/awt/GridLayout ++java/awt/Image ++java/awt/Image$1 ++java/awt/ImageCapabilities ++java/awt/ImageMediaEntry ++java/awt/Insets ++java/awt/ItemSelectable ++java/awt/KeyEventDispatcher ++java/awt/KeyEventPostProcessor ++java/awt/KeyboardFocusManager ++java/awt/KeyboardFocusManager$1 ++java/awt/KeyboardFocusManager$3 ++java/awt/KeyboardFocusManager$HeavyweightFocusRequest ++java/awt/KeyboardFocusManager$LightweightFocusRequest ++java/awt/Label ++java/awt/LayoutManager ++java/awt/LayoutManager2 ++java/awt/LightweightDispatcher ++java/awt/LightweightDispatcher$2 ++java/awt/MediaEntry ++java/awt/MediaTracker ++java/awt/MenuBar ++java/awt/MenuComponent ++java/awt/MenuContainer ++java/awt/ModalEventFilter ++java/awt/Paint ++java/awt/Panel ++java/awt/Point ++java/awt/PrintGraphics ++java/awt/Queue ++java/awt/Rectangle ++java/awt/RenderingHints ++java/awt/RenderingHints$Key ++java/awt/SentEvent ++java/awt/SequencedEvent ++java/awt/SequencedEvent$1 ++java/awt/Shape ++java/awt/SplashScreen ++java/awt/Stroke ++java/awt/SystemColor ++java/awt/Toolkit ++java/awt/Toolkit$1 ++java/awt/Toolkit$2 ++java/awt/Toolkit$3 ++java/awt/Toolkit$4 ++java/awt/Toolkit$5 ++java/awt/Toolkit$DesktopPropertyChangeSupport ++java/awt/Toolkit$DesktopPropertyChangeSupport$1 ++java/awt/Toolkit$SelectiveAWTEventListener ++java/awt/Toolkit$ToolkitEventMulticaster ++java/awt/Transparency ++java/awt/TrayIcon ++java/awt/VKCollection ++java/awt/Window ++java/awt/Window$1 ++java/awt/Window$1DisposeAction ++java/awt/Window$Type ++java/awt/Window$WindowDisposerRecord ++java/awt/color/ColorSpace ++java/awt/color/ICC_ColorSpace ++java/awt/color/ICC_Profile ++java/awt/color/ICC_Profile$1 ++java/awt/color/ICC_ProfileRGB ++java/awt/datatransfer/Clipboard ++java/awt/datatransfer/ClipboardOwner ++java/awt/datatransfer/FlavorMap ++java/awt/datatransfer/FlavorTable ++java/awt/datatransfer/SystemFlavorMap ++java/awt/datatransfer/Transferable ++java/awt/dnd/DropTarget ++java/awt/dnd/DropTargetContext ++java/awt/dnd/DropTargetListener ++java/awt/dnd/peer/DragSourceContextPeer ++java/awt/dnd/peer/DropTargetContextPeer ++java/awt/dnd/peer/DropTargetPeer ++java/awt/event/AWTEventListener ++java/awt/event/AWTEventListenerProxy ++java/awt/event/ActionEvent ++java/awt/event/ActionListener ++java/awt/event/AdjustmentEvent ++java/awt/event/AdjustmentListener ++java/awt/event/ComponentAdapter ++java/awt/event/ComponentEvent ++java/awt/event/ComponentListener ++java/awt/event/ContainerEvent ++java/awt/event/ContainerListener ++java/awt/event/FocusAdapter ++java/awt/event/FocusEvent ++java/awt/event/FocusListener ++java/awt/event/HierarchyBoundsListener ++java/awt/event/HierarchyListener ++java/awt/event/InputEvent ++java/awt/event/InputEvent$1 ++java/awt/event/InputMethodEvent ++java/awt/event/InputMethodListener ++java/awt/event/InvocationEvent ++java/awt/event/InvocationEvent$1 ++java/awt/event/ItemEvent ++java/awt/event/ItemListener ++java/awt/event/KeyAdapter ++java/awt/event/KeyEvent ++java/awt/event/KeyEvent$1 ++java/awt/event/KeyListener ++java/awt/event/MouseAdapter ++java/awt/event/MouseEvent ++java/awt/event/MouseListener ++java/awt/event/MouseMotionAdapter ++java/awt/event/MouseMotionListener ++java/awt/event/MouseWheelListener ++java/awt/event/NativeLibLoader ++java/awt/event/NativeLibLoader$1 ++java/awt/event/PaintEvent ++java/awt/event/TextListener ++java/awt/event/WindowAdapter ++java/awt/event/WindowEvent ++java/awt/event/WindowFocusListener ++java/awt/event/WindowListener ++java/awt/event/WindowStateListener ++java/awt/font/FontRenderContext ++java/awt/font/GlyphVector ++java/awt/font/LineMetrics ++java/awt/font/TextAttribute ++java/awt/geom/AffineTransform ++java/awt/geom/Dimension2D ++java/awt/geom/GeneralPath ++java/awt/geom/Line2D ++java/awt/geom/Line2D$Float ++java/awt/geom/Path2D ++java/awt/geom/Path2D$Float ++java/awt/geom/PathIterator ++java/awt/geom/Point2D ++java/awt/geom/Point2D$Float ++java/awt/geom/RectIterator ++java/awt/geom/Rectangle2D ++java/awt/geom/Rectangle2D$Float ++java/awt/geom/RectangularShape ++java/awt/im/InputContext ++java/awt/im/InputMethodRequests ++java/awt/im/spi/InputMethod ++java/awt/im/spi/InputMethodContext ++java/awt/im/spi/InputMethodDescriptor ++java/awt/image/BufferStrategy ++java/awt/image/BufferedImage ++java/awt/image/BufferedImage$1 ++java/awt/image/ColorModel ++java/awt/image/ColorModel$1 ++java/awt/image/ComponentSampleModel ++java/awt/image/DataBuffer ++java/awt/image/DataBuffer$1 ++java/awt/image/DataBufferByte ++java/awt/image/DataBufferInt ++java/awt/image/DirectColorModel ++java/awt/image/FilteredImageSource ++java/awt/image/ImageConsumer ++java/awt/image/ImageFilter ++java/awt/image/ImageObserver ++java/awt/image/ImageProducer ++java/awt/image/IndexColorModel ++java/awt/image/PackedColorModel ++java/awt/image/PixelInterleavedSampleModel ++java/awt/image/RGBImageFilter ++java/awt/image/Raster ++java/awt/image/RenderedImage ++java/awt/image/SampleModel ++java/awt/image/SinglePixelPackedSampleModel ++java/awt/image/VolatileImage ++java/awt/image/WritableRaster ++java/awt/image/WritableRenderedImage ++java/awt/peer/CanvasPeer ++java/awt/peer/ComponentPeer ++java/awt/peer/ContainerPeer ++java/awt/peer/FramePeer ++java/awt/peer/KeyboardFocusManagerPeer ++java/awt/peer/LabelPeer ++java/awt/peer/LightweightPeer ++java/awt/peer/PanelPeer ++java/awt/peer/SystemTrayPeer ++java/awt/peer/WindowPeer ++java/awt/print/PrinterGraphics ++java/beans/ChangeListenerMap ++java/beans/PropertyChangeEvent ++java/beans/PropertyChangeListener ++java/beans/PropertyChangeListenerProxy ++java/beans/PropertyChangeSupport ++java/beans/PropertyChangeSupport$PropertyChangeListenerMap ++java/beans/VetoableChangeListener ++java/io/Bits ++java/io/BufferedInputStream ++java/io/BufferedOutputStream ++java/io/BufferedReader ++java/io/BufferedWriter ++java/io/ByteArrayInputStream ++java/io/ByteArrayOutputStream ++java/io/Closeable ++java/io/DataInput ++java/io/DataInputStream ++java/io/DataOutput ++java/io/DataOutputStream ++java/io/DefaultFileSystem ++java/io/EOFException ++java/io/ExpiringCache ++java/io/ExpiringCache$1 ++java/io/ExpiringCache$Entry ++java/io/Externalizable ++java/io/File ++java/io/File$PathStatus ++java/io/FileDescriptor ++java/io/FileDescriptor$1 ++java/io/FileInputStream ++java/io/FileInputStream$1 ++java/io/FileNotFoundException ++java/io/FileOutputStream ++java/io/FileOutputStream$1 ++java/io/FilePermission ++java/io/FilePermission$1 ++java/io/FilePermissionCollection ++java/io/FileReader ++java/io/FileSystem ++java/io/FileWriter ++java/io/FilenameFilter ++java/io/FilterInputStream ++java/io/FilterOutputStream ++java/io/FilterReader ++java/io/Flushable ++java/io/IOException ++java/io/InputStream ++java/io/InputStreamReader ++java/io/InterruptedIOException ++java/io/ObjectInput ++java/io/ObjectInputStream ++java/io/ObjectInputStream$BlockDataInputStream ++java/io/ObjectInputStream$GetField ++java/io/ObjectInputStream$GetFieldImpl ++java/io/ObjectInputStream$HandleTable ++java/io/ObjectInputStream$HandleTable$HandleList ++java/io/ObjectInputStream$PeekInputStream ++java/io/ObjectInputStream$ValidationList ++java/io/ObjectOutput ++java/io/ObjectOutputStream ++java/io/ObjectOutputStream$BlockDataOutputStream ++java/io/ObjectOutputStream$HandleTable ++java/io/ObjectOutputStream$ReplaceTable ++java/io/ObjectStreamClass ++java/io/ObjectStreamClass$1 ++java/io/ObjectStreamClass$2 ++java/io/ObjectStreamClass$3 ++java/io/ObjectStreamClass$4 ++java/io/ObjectStreamClass$5 ++java/io/ObjectStreamClass$Caches ++java/io/ObjectStreamClass$ClassDataSlot ++java/io/ObjectStreamClass$EntryFuture ++java/io/ObjectStreamClass$ExceptionInfo ++java/io/ObjectStreamClass$FieldReflector ++java/io/ObjectStreamClass$FieldReflectorKey ++java/io/ObjectStreamClass$MemberSignature ++java/io/ObjectStreamClass$WeakClassKey ++java/io/ObjectStreamConstants ++java/io/ObjectStreamField ++java/io/OutputStream ++java/io/OutputStreamWriter ++java/io/PrintStream ++java/io/PushbackInputStream ++java/io/RandomAccessFile ++java/io/RandomAccessFile$1 ++java/io/Reader ++java/io/SerialCallbackContext ++java/io/Serializable ++java/io/StreamTokenizer ++java/io/StringReader ++java/io/StringWriter ++java/io/UnixFileSystem ++java/io/UnsupportedEncodingException ++java/io/Writer ++java/lang/AbstractStringBuilder ++java/lang/Appendable ++java/lang/ApplicationShutdownHooks ++java/lang/ApplicationShutdownHooks$1 ++java/lang/ArithmeticException ++java/lang/ArrayIndexOutOfBoundsException ++java/lang/ArrayStoreException ++java/lang/AutoCloseable ++java/lang/Boolean ++java/lang/BootstrapMethodError ++java/lang/Byte ++java/lang/CharSequence ++java/lang/Character ++java/lang/Character$CharacterCache ++java/lang/CharacterData ++java/lang/CharacterData00 ++java/lang/CharacterDataLatin1 ++java/lang/Class ++java/lang/Class$1 ++java/lang/Class$3 ++java/lang/Class$4 ++java/lang/Class$AnnotationData ++java/lang/Class$Atomic ++java/lang/Class$ReflectionData ++java/lang/ClassCastException ++java/lang/ClassFormatError ++java/lang/ClassLoader ++java/lang/ClassLoader$2 ++java/lang/ClassLoader$3 ++java/lang/ClassLoader$NativeLibrary ++java/lang/ClassLoader$ParallelLoaders ++java/lang/ClassNotFoundException ++java/lang/ClassValue$ClassValueMap ++java/lang/CloneNotSupportedException ++java/lang/Cloneable ++java/lang/Comparable ++java/lang/Compiler ++java/lang/Compiler$1 ++java/lang/Double ++java/lang/Enum ++java/lang/Error ++java/lang/Exception ++java/lang/ExceptionInInitializerError ++java/lang/Float ++java/lang/IllegalAccessError ++java/lang/IllegalAccessException ++java/lang/IllegalArgumentException ++java/lang/IllegalMonitorStateException ++java/lang/IllegalStateException ++java/lang/IncompatibleClassChangeError ++java/lang/IndexOutOfBoundsException ++java/lang/InheritableThreadLocal ++java/lang/InstantiationException ++java/lang/Integer ++java/lang/Integer$IntegerCache ++java/lang/InternalError ++java/lang/InterruptedException ++java/lang/Iterable ++java/lang/LinkageError ++java/lang/Long ++java/lang/Long$LongCache ++java/lang/Math ++java/lang/NoClassDefFoundError ++java/lang/NoSuchFieldException ++java/lang/NoSuchMethodError ++java/lang/NoSuchMethodException ++java/lang/NullPointerException ++java/lang/Number ++java/lang/NumberFormatException ++java/lang/Object ++java/lang/OutOfMemoryError ++java/lang/Package ++java/lang/Process ++java/lang/ProcessBuilder ++java/lang/ProcessBuilder$NullOutputStream ++java/lang/ProcessEnvironment ++java/lang/ProcessEnvironment$ExternalData ++java/lang/ProcessEnvironment$StringEnvironment ++java/lang/ProcessEnvironment$Value ++java/lang/ProcessEnvironment$Variable ++java/lang/ProcessImpl ++java/lang/Readable ++java/lang/ReflectiveOperationException ++java/lang/Runnable ++java/lang/Runtime ++java/lang/RuntimeException ++java/lang/RuntimePermission ++java/lang/SecurityException ++java/lang/SecurityManager ++java/lang/Short ++java/lang/Shutdown ++java/lang/Shutdown$Lock ++java/lang/StackOverflowError ++java/lang/StackTraceElement ++java/lang/StrictMath ++java/lang/String ++java/lang/String$CaseInsensitiveComparator ++java/lang/StringBuffer ++java/lang/StringBuilder ++java/lang/StringCoding ++java/lang/StringCoding$StringDecoder ++java/lang/StringCoding$StringEncoder ++java/lang/StringIndexOutOfBoundsException ++java/lang/System ++java/lang/System$2 ++java/lang/SystemClassLoaderAction ++java/lang/Terminator ++java/lang/Terminator$1 ++java/lang/Thread ++java/lang/Thread$State ++java/lang/Thread$UncaughtExceptionHandler ++java/lang/ThreadDeath ++java/lang/ThreadGroup ++java/lang/ThreadLocal ++java/lang/ThreadLocal$ThreadLocalMap ++java/lang/ThreadLocal$ThreadLocalMap$Entry ++java/lang/Throwable ++java/lang/Throwable$PrintStreamOrWriter ++java/lang/Throwable$WrappedPrintStream ++java/lang/UNIXProcess ++java/lang/UNIXProcess$1 ++java/lang/UNIXProcess$2 ++java/lang/UNIXProcess$3 ++java/lang/UNIXProcess$4 ++java/lang/UNIXProcess$LaunchMechanism ++java/lang/UNIXProcess$ProcessPipeInputStream ++java/lang/UNIXProcess$ProcessPipeOutputStream ++java/lang/UNIXProcess$ProcessReaperThreadFactory ++java/lang/UNIXProcess$ProcessReaperThreadFactory$1 ++java/lang/UnsatisfiedLinkError ++java/lang/UnsupportedOperationException ++java/lang/VirtualMachineError ++java/lang/Void ++java/lang/annotation/Annotation ++java/lang/invoke/CallSite ++java/lang/invoke/ConstantCallSite ++java/lang/invoke/DirectMethodHandle ++java/lang/invoke/Invokers ++java/lang/invoke/LambdaForm ++java/lang/invoke/LambdaForm$NamedFunction ++java/lang/invoke/MemberName ++java/lang/invoke/MemberName$Factory ++java/lang/invoke/MethodHandle ++java/lang/invoke/MethodHandleImpl ++java/lang/invoke/MethodHandleNatives ++java/lang/invoke/MethodHandleStatics ++java/lang/invoke/MethodHandleStatics$1 ++java/lang/invoke/MethodType ++java/lang/invoke/MethodType$ConcurrentWeakInternSet ++java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry ++java/lang/invoke/MethodTypeForm ++java/lang/invoke/MutableCallSite ++java/lang/invoke/VolatileCallSite ++java/lang/ref/FinalReference ++java/lang/ref/Finalizer ++java/lang/ref/Finalizer$FinalizerThread ++java/lang/ref/PhantomReference ++java/lang/ref/Reference ++java/lang/ref/Reference$Lock ++java/lang/ref/Reference$ReferenceHandler ++java/lang/ref/ReferenceQueue ++java/lang/ref/ReferenceQueue$Lock ++java/lang/ref/ReferenceQueue$Null ++java/lang/ref/SoftReference ++java/lang/ref/WeakReference ++java/lang/reflect/AccessibleObject ++java/lang/reflect/AnnotatedElement ++java/lang/reflect/Array ++java/lang/reflect/Constructor ++java/lang/reflect/Executable ++java/lang/reflect/Field ++java/lang/reflect/GenericDeclaration ++java/lang/reflect/InvocationHandler ++java/lang/reflect/InvocationTargetException ++java/lang/reflect/Member ++java/lang/reflect/Method ++java/lang/reflect/Modifier ++java/lang/reflect/Parameter ++java/lang/reflect/Proxy ++java/lang/reflect/Proxy$KeyFactory ++java/lang/reflect/Proxy$ProxyClassFactory ++java/lang/reflect/ReflectAccess ++java/lang/reflect/ReflectPermission ++java/lang/reflect/Type ++java/lang/reflect/WeakCache ++java/math/BigInteger ++java/math/BigInteger$UnsafeHolder ++java/math/MutableBigInteger ++java/math/RoundingMode ++java/math/SignedMutableBigInteger ++java/net/AbstractPlainDatagramSocketImpl ++java/net/AbstractPlainDatagramSocketImpl$1 ++java/net/AbstractPlainSocketImpl ++java/net/AbstractPlainSocketImpl$1 ++java/net/Authenticator ++java/net/BindException ++java/net/ConnectException ++java/net/DatagramPacket ++java/net/DatagramPacket$1 ++java/net/DatagramSocket ++java/net/DatagramSocket$1 ++java/net/DatagramSocketImpl ++java/net/DefaultDatagramSocketImplFactory ++java/net/DefaultInterface ++java/net/FileNameMap ++java/net/HttpURLConnection ++java/net/Inet4Address ++java/net/Inet4AddressImpl ++java/net/Inet6Address ++java/net/Inet6Address$Inet6AddressHolder ++java/net/Inet6AddressImpl ++java/net/InetAddress ++java/net/InetAddress$1 ++java/net/InetAddress$2 ++java/net/InetAddress$Cache ++java/net/InetAddress$Cache$Type ++java/net/InetAddress$CacheEntry ++java/net/InetAddress$InetAddressHolder ++java/net/InetAddressImpl ++java/net/InetAddressImplFactory ++java/net/InetSocketAddress ++java/net/InetSocketAddress$InetSocketAddressHolder ++java/net/InterfaceAddress ++java/net/JarURLConnection ++java/net/MalformedURLException ++java/net/MulticastSocket ++java/net/NetworkInterface ++java/net/NetworkInterface$1 ++java/net/NoRouteToHostException ++java/net/Parts ++java/net/PlainDatagramSocketImpl ++java/net/PlainSocketImpl ++java/net/Proxy ++java/net/Proxy$Type ++java/net/ProxySelector ++java/net/ServerSocket ++java/net/Socket ++java/net/SocketAddress ++java/net/SocketException ++java/net/SocketImpl ++java/net/SocketImplFactory ++java/net/SocketOptions ++java/net/SocksConsts ++java/net/SocksSocketImpl ++java/net/SocksSocketImpl$3 ++java/net/URI ++java/net/URI$Parser ++java/net/URL ++java/net/URLClassLoader ++java/net/URLClassLoader$1 ++java/net/URLClassLoader$2 ++java/net/URLClassLoader$3 ++java/net/URLClassLoader$3$1 ++java/net/URLClassLoader$7 ++java/net/URLConnection ++java/net/URLConnection$1 ++java/net/URLStreamHandler ++java/net/URLStreamHandlerFactory ++java/net/UnknownHostException ++java/nio/Bits ++java/nio/Bits$1 ++java/nio/Buffer ++java/nio/ByteBuffer ++java/nio/ByteBufferAsIntBufferB ++java/nio/ByteBufferAsShortBufferB ++java/nio/ByteOrder ++java/nio/CharBuffer ++java/nio/DirectByteBuffer ++java/nio/DirectByteBuffer$Deallocator ++java/nio/DirectByteBufferR ++java/nio/DirectLongBufferU ++java/nio/HeapByteBuffer ++java/nio/HeapCharBuffer ++java/nio/IntBuffer ++java/nio/LongBuffer ++java/nio/MappedByteBuffer ++java/nio/ShortBuffer ++java/nio/channels/ByteChannel ++java/nio/channels/Channel ++java/nio/channels/FileChannel ++java/nio/channels/FileChannel$MapMode ++java/nio/channels/GatheringByteChannel ++java/nio/channels/InterruptibleChannel ++java/nio/channels/NetworkChannel ++java/nio/channels/ReadableByteChannel ++java/nio/channels/ScatteringByteChannel ++java/nio/channels/SeekableByteChannel ++java/nio/channels/SelectableChannel ++java/nio/channels/SocketChannel ++java/nio/channels/WritableByteChannel ++java/nio/channels/spi/AbstractInterruptibleChannel ++java/nio/channels/spi/AbstractInterruptibleChannel$1 ++java/nio/channels/spi/AbstractSelectableChannel ++java/nio/charset/Charset ++java/nio/charset/CharsetDecoder ++java/nio/charset/CharsetEncoder ++java/nio/charset/CoderResult ++java/nio/charset/CoderResult$1 ++java/nio/charset/CoderResult$2 ++java/nio/charset/CoderResult$Cache ++java/nio/charset/CodingErrorAction ++java/nio/charset/StandardCharsets ++java/nio/charset/spi/CharsetProvider ++java/nio/file/Path ++java/nio/file/Watchable ++java/nio/file/attribute/FileAttribute ++java/security/AccessControlContext ++java/security/AccessController ++java/security/AlgorithmParameters ++java/security/AlgorithmParametersSpi ++java/security/AllPermission ++java/security/AllPermissionCollection ++java/security/BasicPermission ++java/security/BasicPermissionCollection ++java/security/CodeSigner ++java/security/CodeSource ++java/security/GeneralSecurityException ++java/security/Guard ++java/security/InvalidKeyException ++java/security/Key ++java/security/KeyException ++java/security/MessageDigest ++java/security/MessageDigest$Delegate ++java/security/MessageDigestSpi ++java/security/NoSuchAlgorithmException ++java/security/Permission ++java/security/PermissionCollection ++java/security/Permissions ++java/security/Principal ++java/security/PrivateKey ++java/security/PrivilegedAction ++java/security/PrivilegedActionException ++java/security/PrivilegedExceptionAction ++java/security/ProtectionDomain ++java/security/ProtectionDomain$1 ++java/security/ProtectionDomain$3 ++java/security/ProtectionDomain$Key ++java/security/Provider ++java/security/Provider$EngineDescription ++java/security/Provider$Service ++java/security/Provider$ServiceKey ++java/security/Provider$UString ++java/security/PublicKey ++java/security/SecureClassLoader ++java/security/SecureRandomSpi ++java/security/Security ++java/security/Security$1 ++java/security/Signature ++java/security/Signature$Delegate ++java/security/SignatureException ++java/security/SignatureSpi ++java/security/UnresolvedPermission ++java/security/cert/Certificate ++java/security/interfaces/DSAKey ++java/security/interfaces/DSAParams ++java/security/interfaces/DSAPrivateKey ++java/security/interfaces/DSAPublicKey ++java/security/spec/AlgorithmParameterSpec ++java/security/spec/DSAParameterSpec ++java/text/AttributedCharacterIterator$Attribute ++java/text/CharacterIterator ++java/text/Collator ++java/text/DateFormat ++java/text/DateFormat$Field ++java/text/DateFormatSymbols ++java/text/DecimalFormat ++java/text/DecimalFormatSymbols ++java/text/DigitList ++java/text/DontCareFieldPosition ++java/text/DontCareFieldPosition$1 ++java/text/EntryPair ++java/text/FieldPosition ++java/text/Format ++java/text/Format$Field ++java/text/Format$FieldDelegate ++java/text/MergeCollation ++java/text/MessageFormat ++java/text/MessageFormat$Field ++java/text/NumberFormat ++java/text/NumberFormat$Field ++java/text/ParseException ++java/text/PatternEntry ++java/text/PatternEntry$Parser ++java/text/RBCollationTables ++java/text/RBCollationTables$BuildAPI ++java/text/RBTableBuilder ++java/text/RuleBasedCollator ++java/text/SimpleDateFormat ++java/text/spi/BreakIteratorProvider ++java/text/spi/CollatorProvider ++java/text/spi/DateFormatProvider ++java/text/spi/DateFormatSymbolsProvider ++java/text/spi/DecimalFormatSymbolsProvider ++java/text/spi/NumberFormatProvider ++java/util/AbstractCollection ++java/util/AbstractList ++java/util/AbstractList$Itr ++java/util/AbstractList$ListItr ++java/util/AbstractMap ++java/util/AbstractQueue ++java/util/AbstractSequentialList ++java/util/AbstractSet ++java/util/ArrayDeque ++java/util/ArrayList ++java/util/ArrayList$Itr ++java/util/ArrayList$ListItr ++java/util/ArrayList$SubList ++java/util/ArrayList$SubList$1 ++java/util/Arrays ++java/util/Arrays$ArrayList ++java/util/Arrays$LegacyMergeSort ++java/util/BitSet ++java/util/Calendar ++java/util/Calendar$Builder ++java/util/Collection ++java/util/Collections ++java/util/Collections$3 ++java/util/Collections$EmptyEnumeration ++java/util/Collections$EmptyIterator ++java/util/Collections$EmptyList ++java/util/Collections$EmptyMap ++java/util/Collections$EmptySet ++java/util/Collections$SetFromMap ++java/util/Collections$SynchronizedCollection ++java/util/Collections$SynchronizedMap ++java/util/Collections$SynchronizedSet ++java/util/Collections$UnmodifiableCollection ++java/util/Collections$UnmodifiableCollection$1 ++java/util/Collections$UnmodifiableList ++java/util/Collections$UnmodifiableList$1 ++java/util/Collections$UnmodifiableMap ++java/util/Collections$UnmodifiableRandomAccessList ++java/util/Collections$UnmodifiableSet ++java/util/ComparableTimSort ++java/util/Comparator ++java/util/Currency ++java/util/Currency$1 ++java/util/Currency$CurrencyNameGetter ++java/util/Date ++java/util/Deque ++java/util/Dictionary ++java/util/Enumeration ++java/util/EventListener ++java/util/EventListenerProxy ++java/util/EventObject ++java/util/GregorianCalendar ++java/util/HashMap ++java/util/HashMap$EntryIterator ++java/util/HashMap$EntrySet ++java/util/HashMap$HashIterator ++java/util/HashMap$KeyIterator ++java/util/HashMap$KeySet ++java/util/HashMap$Node ++java/util/HashMap$TreeNode ++java/util/HashMap$ValueIterator ++java/util/HashMap$Values ++java/util/HashSet ++java/util/Hashtable ++java/util/Hashtable$Entry ++java/util/Hashtable$EntrySet ++java/util/Hashtable$Enumerator ++java/util/Hashtable$ValueCollection ++java/util/IdentityHashMap ++java/util/IdentityHashMap$IdentityHashMapIterator ++java/util/IdentityHashMap$KeyIterator ++java/util/IdentityHashMap$KeySet ++java/util/IdentityHashMap$ValueIterator ++java/util/IdentityHashMap$Values ++java/util/Iterator ++java/util/LinkedHashMap ++java/util/LinkedHashMap$Entry ++java/util/LinkedHashMap$LinkedEntryIterator ++java/util/LinkedHashMap$LinkedEntrySet ++java/util/LinkedHashMap$LinkedHashIterator ++java/util/LinkedHashMap$LinkedKeyIterator ++java/util/LinkedHashMap$LinkedKeySet ++java/util/LinkedList ++java/util/LinkedList$ListItr ++java/util/LinkedList$Node ++java/util/List ++java/util/ListIterator ++java/util/ListResourceBundle ++java/util/Locale ++java/util/Locale$1 ++java/util/Locale$Cache ++java/util/Locale$Category ++java/util/Locale$LocaleKey ++java/util/Map ++java/util/Map$Entry ++java/util/MissingResourceException ++java/util/NavigableMap ++java/util/Objects ++java/util/PriorityQueue ++java/util/Properties ++java/util/Properties$LineReader ++java/util/PropertyResourceBundle ++java/util/Queue ++java/util/Random ++java/util/RandomAccess ++java/util/ResourceBundle ++java/util/ResourceBundle$1 ++java/util/ResourceBundle$BundleReference ++java/util/ResourceBundle$CacheKey ++java/util/ResourceBundle$CacheKeyReference ++java/util/ResourceBundle$Control ++java/util/ResourceBundle$Control$1 ++java/util/ResourceBundle$Control$CandidateListCache ++java/util/ResourceBundle$LoaderReference ++java/util/ResourceBundle$RBClassLoader ++java/util/ResourceBundle$RBClassLoader$1 ++java/util/ResourceBundle$SingleFormatControl ++java/util/ServiceLoader ++java/util/ServiceLoader$1 ++java/util/ServiceLoader$LazyIterator ++java/util/Set ++java/util/SortedMap ++java/util/Stack ++java/util/StringTokenizer ++java/util/TimSort ++java/util/TimeZone ++java/util/TimeZone$1 ++java/util/TreeMap ++java/util/TreeMap$Entry ++java/util/Vector ++java/util/Vector$1 ++java/util/Vector$Itr ++java/util/Vector$ListItr ++java/util/WeakHashMap ++java/util/WeakHashMap$Entry ++java/util/WeakHashMap$KeySet ++java/util/concurrent/AbstractExecutorService ++java/util/concurrent/BlockingQueue ++java/util/concurrent/ConcurrentHashMap ++java/util/concurrent/ConcurrentHashMap$BaseIterator ++java/util/concurrent/ConcurrentHashMap$CollectionView ++java/util/concurrent/ConcurrentHashMap$CounterCell ++java/util/concurrent/ConcurrentHashMap$EntrySetView ++java/util/concurrent/ConcurrentHashMap$ForwardingNode ++java/util/concurrent/ConcurrentHashMap$KeyIterator ++java/util/concurrent/ConcurrentHashMap$KeySetView ++java/util/concurrent/ConcurrentHashMap$Node ++java/util/concurrent/ConcurrentHashMap$Segment ++java/util/concurrent/ConcurrentHashMap$Traverser ++java/util/concurrent/ConcurrentHashMap$ValueIterator ++java/util/concurrent/ConcurrentHashMap$ValuesView ++java/util/concurrent/ConcurrentMap ++java/util/concurrent/CopyOnWriteArrayList ++java/util/concurrent/DelayQueue ++java/util/concurrent/Delayed ++java/util/concurrent/Executor ++java/util/concurrent/ExecutorService ++java/util/concurrent/Executors ++java/util/concurrent/RejectedExecutionHandler ++java/util/concurrent/SynchronousQueue ++java/util/concurrent/SynchronousQueue$TransferStack ++java/util/concurrent/SynchronousQueue$TransferStack$SNode ++java/util/concurrent/SynchronousQueue$Transferer ++java/util/concurrent/ThreadFactory ++java/util/concurrent/ThreadPoolExecutor ++java/util/concurrent/ThreadPoolExecutor$AbortPolicy ++java/util/concurrent/ThreadPoolExecutor$Worker ++java/util/concurrent/TimeUnit ++java/util/concurrent/TimeUnit$1 ++java/util/concurrent/TimeUnit$2 ++java/util/concurrent/TimeUnit$3 ++java/util/concurrent/TimeUnit$4 ++java/util/concurrent/TimeUnit$5 ++java/util/concurrent/TimeUnit$6 ++java/util/concurrent/TimeUnit$7 ++java/util/concurrent/atomic/AtomicBoolean ++java/util/concurrent/atomic/AtomicInteger ++java/util/concurrent/atomic/AtomicLong ++java/util/concurrent/atomic/AtomicMarkableReference ++java/util/concurrent/atomic/AtomicMarkableReference$Pair ++java/util/concurrent/atomic/AtomicReferenceFieldUpdater ++java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl ++java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 ++java/util/concurrent/locks/AbstractOwnableSynchronizer ++java/util/concurrent/locks/AbstractQueuedSynchronizer ++java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject ++java/util/concurrent/locks/AbstractQueuedSynchronizer$Node ++java/util/concurrent/locks/Condition ++java/util/concurrent/locks/Lock ++java/util/concurrent/locks/LockSupport ++java/util/concurrent/locks/ReentrantLock ++java/util/concurrent/locks/ReentrantLock$NonfairSync ++java/util/concurrent/locks/ReentrantLock$Sync ++java/util/function/BiFunction ++java/util/jar/Attributes ++java/util/jar/Attributes$Name ++java/util/jar/JarEntry ++java/util/jar/JarFile ++java/util/jar/JarFile$JarEntryIterator ++java/util/jar/JarFile$JarFileEntry ++java/util/jar/JarVerifier ++java/util/jar/JarVerifier$3 ++java/util/jar/JavaUtilJarAccessImpl ++java/util/jar/Manifest ++java/util/jar/Manifest$FastInputStream ++java/util/logging/Handler ++java/util/logging/Level ++java/util/logging/Level$KnownLevel ++java/util/logging/LogManager ++java/util/logging/LogManager$1 ++java/util/logging/LogManager$2 ++java/util/logging/LogManager$3 ++java/util/logging/LogManager$5 ++java/util/logging/LogManager$Cleaner ++java/util/logging/LogManager$LogNode ++java/util/logging/LogManager$LoggerContext ++java/util/logging/LogManager$LoggerContext$1 ++java/util/logging/LogManager$LoggerWeakRef ++java/util/logging/LogManager$RootLogger ++java/util/logging/LogManager$SystemLoggerContext ++java/util/logging/Logger ++java/util/logging/Logger$1 ++java/util/logging/LoggingPermission ++java/util/logging/LoggingProxyImpl ++java/util/spi/CalendarDataProvider ++java/util/spi/CurrencyNameProvider ++java/util/spi/LocaleNameProvider ++java/util/spi/LocaleServiceProvider ++java/util/spi/ResourceBundleControlProvider ++java/util/spi/TimeZoneNameProvider ++java/util/zip/CRC32 ++java/util/zip/Checksum ++java/util/zip/DeflaterOutputStream ++java/util/zip/GZIPInputStream ++java/util/zip/Inflater ++java/util/zip/InflaterInputStream ++java/util/zip/ZStreamRef ++java/util/zip/ZipCoder ++java/util/zip/ZipConstants ++java/util/zip/ZipEntry ++java/util/zip/ZipFile ++java/util/zip/ZipFile$1 ++java/util/zip/ZipFile$ZipEntryIterator ++java/util/zip/ZipFile$ZipFileInflaterInputStream ++java/util/zip/ZipFile$ZipFileInputStream ++java/util/zip/ZipInputStream ++java/util/zip/ZipUtils ++javax/accessibility/Accessible ++javax/accessibility/AccessibleAction ++javax/accessibility/AccessibleBundle ++javax/accessibility/AccessibleComponent ++javax/accessibility/AccessibleContext ++javax/accessibility/AccessibleExtendedComponent ++javax/accessibility/AccessibleRelationSet ++javax/accessibility/AccessibleState ++javax/accessibility/AccessibleText ++javax/accessibility/AccessibleValue ++javax/security/auth/Destroyable ++javax/sound/sampled/Control$Type ++javax/sound/sampled/DataLine ++javax/sound/sampled/DataLine$Info ++javax/sound/sampled/FloatControl$Type ++javax/sound/sampled/Line ++javax/sound/sampled/Line$Info ++javax/sound/sampled/LineUnavailableException ++javax/sound/sampled/UnsupportedAudioFileException ++javax/swing/AbstractAction ++javax/swing/AbstractButton ++javax/swing/AbstractButton$AccessibleAbstractButton ++javax/swing/AbstractButton$Handler ++javax/swing/AbstractCellEditor ++javax/swing/AbstractListModel ++javax/swing/Action ++javax/swing/ActionMap ++javax/swing/AncestorNotifier ++javax/swing/ArrayTable ++javax/swing/BorderFactory ++javax/swing/BoundedRangeModel ++javax/swing/Box ++javax/swing/Box$Filler ++javax/swing/BoxLayout ++javax/swing/BufferStrategyPaintManager ++javax/swing/BufferStrategyPaintManager$BufferInfo ++javax/swing/ButtonGroup ++javax/swing/ButtonModel ++javax/swing/CellEditor ++javax/swing/CellRendererPane ++javax/swing/ClientPropertyKey ++javax/swing/ClientPropertyKey$1 ++javax/swing/ComboBoxEditor ++javax/swing/ComboBoxModel ++javax/swing/ComponentInputMap ++javax/swing/DefaultBoundedRangeModel ++javax/swing/DefaultButtonModel ++javax/swing/DefaultCellEditor ++javax/swing/DefaultCellEditor$1 ++javax/swing/DefaultCellEditor$EditorDelegate ++javax/swing/DefaultComboBoxModel ++javax/swing/DefaultListCellRenderer ++javax/swing/DefaultListCellRenderer$UIResource ++javax/swing/DefaultListModel ++javax/swing/DefaultListSelectionModel ++javax/swing/DefaultSingleSelectionModel ++javax/swing/DropMode ++javax/swing/FocusManager ++javax/swing/GrayFilter ++javax/swing/Icon ++javax/swing/ImageIcon ++javax/swing/ImageIcon$1 ++javax/swing/ImageIcon$2 ++javax/swing/ImageIcon$2$1 ++javax/swing/ImageIcon$3 ++javax/swing/InputMap ++javax/swing/InternalFrameFocusTraversalPolicy ++javax/swing/JButton ++javax/swing/JCheckBox ++javax/swing/JCheckBoxMenuItem ++javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem ++javax/swing/JComboBox ++javax/swing/JComboBox$1 ++javax/swing/JComboBox$KeySelectionManager ++javax/swing/JComponent ++javax/swing/JComponent$1 ++javax/swing/JComponent$2 ++javax/swing/JComponent$AccessibleJComponent ++javax/swing/JDialog ++javax/swing/JEditorPane ++javax/swing/JFrame ++javax/swing/JInternalFrame ++javax/swing/JLabel ++javax/swing/JLayer ++javax/swing/JLayeredPane ++javax/swing/JList ++javax/swing/JList$3 ++javax/swing/JList$ListSelectionHandler ++javax/swing/JMenu ++javax/swing/JMenu$MenuChangeListener ++javax/swing/JMenu$WinListener ++javax/swing/JMenuBar ++javax/swing/JMenuItem ++javax/swing/JMenuItem$AccessibleJMenuItem ++javax/swing/JMenuItem$MenuItemFocusListener ++javax/swing/JPanel ++javax/swing/JPopupMenu ++javax/swing/JPopupMenu$Separator ++javax/swing/JProgressBar ++javax/swing/JProgressBar$ModelListener ++javax/swing/JRadioButton ++javax/swing/JRadioButtonMenuItem ++javax/swing/JRootPane ++javax/swing/JRootPane$1 ++javax/swing/JRootPane$RootLayout ++javax/swing/JScrollBar ++javax/swing/JScrollBar$ModelListener ++javax/swing/JScrollPane ++javax/swing/JScrollPane$ScrollBar ++javax/swing/JSeparator ++javax/swing/JSlider ++javax/swing/JSlider$ModelListener ++javax/swing/JSplitPane ++javax/swing/JTabbedPane ++javax/swing/JTabbedPane$ModelListener ++javax/swing/JTabbedPane$Page ++javax/swing/JTable ++javax/swing/JTable$2 ++javax/swing/JTable$5 ++javax/swing/JTable$Resizable2 ++javax/swing/JTable$Resizable3 ++javax/swing/JTextArea ++javax/swing/JTextField ++javax/swing/JTextField$NotifyAction ++javax/swing/JTextField$ScrollRepainter ++javax/swing/JToggleButton ++javax/swing/JToggleButton$ToggleButtonModel ++javax/swing/JToolBar ++javax/swing/JToolBar$DefaultToolBarLayout ++javax/swing/JToolBar$Separator ++javax/swing/JToolTip ++javax/swing/JTree ++javax/swing/JTree$TreeModelHandler ++javax/swing/JTree$TreeSelectionRedirector ++javax/swing/JViewport ++javax/swing/JViewport$ViewListener ++javax/swing/JWindow ++javax/swing/KeyStroke ++javax/swing/KeyboardManager ++javax/swing/KeyboardManager$ComponentKeyStrokePair ++javax/swing/LayoutComparator ++javax/swing/LayoutFocusTraversalPolicy ++javax/swing/ListCellRenderer ++javax/swing/ListModel ++javax/swing/ListSelectionModel ++javax/swing/LookAndFeel ++javax/swing/MenuElement ++javax/swing/MenuSelectionManager ++javax/swing/MultiUIDefaults ++javax/swing/MutableComboBoxModel ++javax/swing/RepaintManager ++javax/swing/RepaintManager$2 ++javax/swing/RepaintManager$3 ++javax/swing/RepaintManager$DisplayChangedHandler ++javax/swing/RepaintManager$PaintManager ++javax/swing/RepaintManager$ProcessingRunnable ++javax/swing/RootPaneContainer ++javax/swing/ScrollPaneConstants ++javax/swing/ScrollPaneLayout ++javax/swing/ScrollPaneLayout$UIResource ++javax/swing/Scrollable ++javax/swing/SingleSelectionModel ++javax/swing/SizeRequirements ++javax/swing/SortingFocusTraversalPolicy ++javax/swing/SwingConstants ++javax/swing/SwingContainerOrderFocusTraversalPolicy ++javax/swing/SwingDefaultFocusTraversalPolicy ++javax/swing/SwingPaintEventDispatcher ++javax/swing/SwingUtilities ++javax/swing/SwingUtilities$SharedOwnerFrame ++javax/swing/Timer ++javax/swing/Timer$DoPostEvent ++javax/swing/TimerQueue ++javax/swing/TimerQueue$1 ++javax/swing/TimerQueue$DelayedTimer ++javax/swing/ToolTipManager ++javax/swing/ToolTipManager$AccessibilityKeyListener ++javax/swing/ToolTipManager$MoveBeforeEnterListener ++javax/swing/ToolTipManager$insideTimerAction ++javax/swing/ToolTipManager$outsideTimerAction ++javax/swing/ToolTipManager$stillInsideTimerAction ++javax/swing/TransferHandler ++javax/swing/TransferHandler$DropHandler ++javax/swing/TransferHandler$HasGetTransferHandler ++javax/swing/TransferHandler$SwingDropTarget ++javax/swing/TransferHandler$TransferAction ++javax/swing/TransferHandler$TransferSupport ++javax/swing/UIDefaults ++javax/swing/UIDefaults$ActiveValue ++javax/swing/UIDefaults$LazyInputMap ++javax/swing/UIDefaults$LazyValue ++javax/swing/UIDefaults$TextAndMnemonicHashMap ++javax/swing/UIManager ++javax/swing/UIManager$1 ++javax/swing/UIManager$2 ++javax/swing/UIManager$LAFState ++javax/swing/UIManager$LookAndFeelInfo ++javax/swing/UnsupportedLookAndFeelException ++javax/swing/ViewportLayout ++javax/swing/WindowConstants ++javax/swing/border/AbstractBorder ++javax/swing/border/BevelBorder ++javax/swing/border/Border ++javax/swing/border/CompoundBorder ++javax/swing/border/EmptyBorder ++javax/swing/border/EtchedBorder ++javax/swing/border/LineBorder ++javax/swing/border/MatteBorder ++javax/swing/border/TitledBorder ++javax/swing/event/AncestorEvent ++javax/swing/event/AncestorListener ++javax/swing/event/CaretEvent ++javax/swing/event/CaretListener ++javax/swing/event/CellEditorListener ++javax/swing/event/ChangeEvent ++javax/swing/event/ChangeListener ++javax/swing/event/DocumentEvent ++javax/swing/event/DocumentEvent$ElementChange ++javax/swing/event/DocumentEvent$EventType ++javax/swing/event/DocumentListener ++javax/swing/event/EventListenerList ++javax/swing/event/ListDataEvent ++javax/swing/event/ListDataListener ++javax/swing/event/ListSelectionEvent ++javax/swing/event/ListSelectionListener ++javax/swing/event/MenuDragMouseListener ++javax/swing/event/MenuEvent ++javax/swing/event/MenuKeyListener ++javax/swing/event/MenuListener ++javax/swing/event/MouseInputAdapter ++javax/swing/event/MouseInputListener ++javax/swing/event/PopupMenuListener ++javax/swing/event/RowSorterListener ++javax/swing/event/SwingPropertyChangeSupport ++javax/swing/event/TableColumnModelEvent ++javax/swing/event/TableColumnModelListener ++javax/swing/event/TableModelEvent ++javax/swing/event/TableModelListener ++javax/swing/event/TreeExpansionListener ++javax/swing/event/TreeModelEvent ++javax/swing/event/TreeModelListener ++javax/swing/event/TreeSelectionEvent ++javax/swing/event/TreeSelectionListener ++javax/swing/event/UndoableEditEvent ++javax/swing/event/UndoableEditListener ++javax/swing/filechooser/FileFilter ++javax/swing/plaf/ActionMapUIResource ++javax/swing/plaf/BorderUIResource ++javax/swing/plaf/BorderUIResource$CompoundBorderUIResource ++javax/swing/plaf/BorderUIResource$EmptyBorderUIResource ++javax/swing/plaf/BorderUIResource$LineBorderUIResource ++javax/swing/plaf/ButtonUI ++javax/swing/plaf/ColorUIResource ++javax/swing/plaf/ComboBoxUI ++javax/swing/plaf/ComponentInputMapUIResource ++javax/swing/plaf/ComponentUI ++javax/swing/plaf/DimensionUIResource ++javax/swing/plaf/FontUIResource ++javax/swing/plaf/InputMapUIResource ++javax/swing/plaf/InsetsUIResource ++javax/swing/plaf/LabelUI ++javax/swing/plaf/ListUI ++javax/swing/plaf/MenuBarUI ++javax/swing/plaf/MenuItemUI ++javax/swing/plaf/PanelUI ++javax/swing/plaf/PopupMenuUI ++javax/swing/plaf/ProgressBarUI ++javax/swing/plaf/RootPaneUI ++javax/swing/plaf/ScrollBarUI ++javax/swing/plaf/ScrollPaneUI ++javax/swing/plaf/SeparatorUI ++javax/swing/plaf/SliderUI ++javax/swing/plaf/SplitPaneUI ++javax/swing/plaf/TabbedPaneUI ++javax/swing/plaf/TableHeaderUI ++javax/swing/plaf/TableUI ++javax/swing/plaf/TextUI ++javax/swing/plaf/ToolBarUI ++javax/swing/plaf/TreeUI ++javax/swing/plaf/UIResource ++javax/swing/plaf/ViewportUI ++javax/swing/plaf/basic/BasicArrowButton ++javax/swing/plaf/basic/BasicBorders ++javax/swing/plaf/basic/BasicBorders$ButtonBorder ++javax/swing/plaf/basic/BasicBorders$MarginBorder ++javax/swing/plaf/basic/BasicBorders$RadioButtonBorder ++javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder ++javax/swing/plaf/basic/BasicBorders$SplitPaneBorder ++javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder ++javax/swing/plaf/basic/BasicButtonListener ++javax/swing/plaf/basic/BasicButtonUI ++javax/swing/plaf/basic/BasicCheckBoxMenuItemUI ++javax/swing/plaf/basic/BasicComboBoxEditor ++javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField ++javax/swing/plaf/basic/BasicComboBoxEditor$UIResource ++javax/swing/plaf/basic/BasicComboBoxRenderer ++javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource ++javax/swing/plaf/basic/BasicComboBoxUI ++javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager ++javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager ++javax/swing/plaf/basic/BasicComboBoxUI$Handler ++javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler ++javax/swing/plaf/basic/BasicComboPopup ++javax/swing/plaf/basic/BasicComboPopup$1 ++javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass ++javax/swing/plaf/basic/BasicComboPopup$Handler ++javax/swing/plaf/basic/BasicGraphicsUtils ++javax/swing/plaf/basic/BasicHTML ++javax/swing/plaf/basic/BasicLabelUI ++javax/swing/plaf/basic/BasicListUI ++javax/swing/plaf/basic/BasicListUI$Handler ++javax/swing/plaf/basic/BasicListUI$ListTransferHandler ++javax/swing/plaf/basic/BasicLookAndFeel ++javax/swing/plaf/basic/BasicLookAndFeel$1 ++javax/swing/plaf/basic/BasicLookAndFeel$2 ++javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper ++javax/swing/plaf/basic/BasicMenuBarUI ++javax/swing/plaf/basic/BasicMenuBarUI$Handler ++javax/swing/plaf/basic/BasicMenuItemUI ++javax/swing/plaf/basic/BasicMenuItemUI$Handler ++javax/swing/plaf/basic/BasicMenuUI ++javax/swing/plaf/basic/BasicMenuUI$Handler ++javax/swing/plaf/basic/BasicPanelUI ++javax/swing/plaf/basic/BasicPopupMenuUI ++javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener ++javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener ++javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper ++javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1 ++javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber ++javax/swing/plaf/basic/BasicProgressBarUI ++javax/swing/plaf/basic/BasicProgressBarUI$Handler ++javax/swing/plaf/basic/BasicRadioButtonMenuItemUI ++javax/swing/plaf/basic/BasicRadioButtonUI ++javax/swing/plaf/basic/BasicRootPaneUI ++javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap ++javax/swing/plaf/basic/BasicScrollBarUI ++javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener ++javax/swing/plaf/basic/BasicScrollBarUI$Handler ++javax/swing/plaf/basic/BasicScrollBarUI$ModelListener ++javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler ++javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener ++javax/swing/plaf/basic/BasicScrollBarUI$TrackListener ++javax/swing/plaf/basic/BasicScrollPaneUI ++javax/swing/plaf/basic/BasicScrollPaneUI$Handler ++javax/swing/plaf/basic/BasicSeparatorUI ++javax/swing/plaf/basic/BasicSliderUI ++javax/swing/plaf/basic/BasicSliderUI$Actions ++javax/swing/plaf/basic/BasicSliderUI$Handler ++javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler ++javax/swing/plaf/basic/BasicSliderUI$ScrollListener ++javax/swing/plaf/basic/BasicSliderUI$TrackListener ++javax/swing/plaf/basic/BasicSplitPaneDivider ++javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout ++javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler ++javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler ++javax/swing/plaf/basic/BasicSplitPaneUI ++javax/swing/plaf/basic/BasicSplitPaneUI$1 ++javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager ++javax/swing/plaf/basic/BasicSplitPaneUI$Handler ++javax/swing/plaf/basic/BasicTabbedPaneUI ++javax/swing/plaf/basic/BasicTabbedPaneUI$Handler ++javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout ++javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout ++javax/swing/plaf/basic/BasicTableHeaderUI ++javax/swing/plaf/basic/BasicTableHeaderUI$1 ++javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler ++javax/swing/plaf/basic/BasicTableUI ++javax/swing/plaf/basic/BasicTableUI$Handler ++javax/swing/plaf/basic/BasicTableUI$TableTransferHandler ++javax/swing/plaf/basic/BasicTextAreaUI ++javax/swing/plaf/basic/BasicTextFieldUI ++javax/swing/plaf/basic/BasicTextUI ++javax/swing/plaf/basic/BasicTextUI$BasicCaret ++javax/swing/plaf/basic/BasicTextUI$BasicCursor ++javax/swing/plaf/basic/BasicTextUI$BasicHighlighter ++javax/swing/plaf/basic/BasicTextUI$DragListener ++javax/swing/plaf/basic/BasicTextUI$FocusAction ++javax/swing/plaf/basic/BasicTextUI$RootView ++javax/swing/plaf/basic/BasicTextUI$TextActionWrapper ++javax/swing/plaf/basic/BasicTextUI$TextTransferHandler ++javax/swing/plaf/basic/BasicTextUI$UpdateHandler ++javax/swing/plaf/basic/BasicToggleButtonUI ++javax/swing/plaf/basic/BasicToolBarSeparatorUI ++javax/swing/plaf/basic/BasicToolBarUI ++javax/swing/plaf/basic/BasicToolBarUI$DockingListener ++javax/swing/plaf/basic/BasicToolBarUI$Handler ++javax/swing/plaf/basic/BasicTreeUI ++javax/swing/plaf/basic/BasicTreeUI$Actions ++javax/swing/plaf/basic/BasicTreeUI$Handler ++javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler ++javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler ++javax/swing/plaf/basic/BasicViewportUI ++javax/swing/plaf/basic/ComboPopup ++javax/swing/plaf/basic/DefaultMenuLayout ++javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag ++javax/swing/plaf/basic/LazyActionMap ++javax/swing/plaf/metal/DefaultMetalTheme ++javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate ++javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 ++javax/swing/plaf/metal/MetalBorders ++javax/swing/plaf/metal/MetalBorders$ButtonBorder ++javax/swing/plaf/metal/MetalBorders$Flush3DBorder ++javax/swing/plaf/metal/MetalBorders$MenuBarBorder ++javax/swing/plaf/metal/MetalBorders$MenuItemBorder ++javax/swing/plaf/metal/MetalBorders$PopupMenuBorder ++javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder ++javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder ++javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder ++javax/swing/plaf/metal/MetalBorders$TextFieldBorder ++javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder ++javax/swing/plaf/metal/MetalBorders$ToolBarBorder ++javax/swing/plaf/metal/MetalBumps ++javax/swing/plaf/metal/MetalButtonUI ++javax/swing/plaf/metal/MetalCheckBoxUI ++javax/swing/plaf/metal/MetalComboBoxButton ++javax/swing/plaf/metal/MetalComboBoxButton$1 ++javax/swing/plaf/metal/MetalComboBoxEditor ++javax/swing/plaf/metal/MetalComboBoxEditor$1 ++javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder ++javax/swing/plaf/metal/MetalComboBoxEditor$UIResource ++javax/swing/plaf/metal/MetalComboBoxIcon ++javax/swing/plaf/metal/MetalComboBoxUI ++javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager ++javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener ++javax/swing/plaf/metal/MetalIconFactory ++javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon ++javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon ++javax/swing/plaf/metal/MetalIconFactory$FolderIcon16 ++javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon ++javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon ++javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon ++javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon ++javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon ++javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon ++javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon ++javax/swing/plaf/metal/MetalLabelUI ++javax/swing/plaf/metal/MetalLookAndFeel ++javax/swing/plaf/metal/MetalLookAndFeel$AATextListener ++javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue ++javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue ++javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1 ++javax/swing/plaf/metal/MetalPopupMenuSeparatorUI ++javax/swing/plaf/metal/MetalProgressBarUI ++javax/swing/plaf/metal/MetalRadioButtonUI ++javax/swing/plaf/metal/MetalRootPaneUI ++javax/swing/plaf/metal/MetalScrollBarUI ++javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener ++javax/swing/plaf/metal/MetalScrollButton ++javax/swing/plaf/metal/MetalScrollPaneUI ++javax/swing/plaf/metal/MetalScrollPaneUI$1 ++javax/swing/plaf/metal/MetalSeparatorUI ++javax/swing/plaf/metal/MetalSliderUI ++javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener ++javax/swing/plaf/metal/MetalSplitPaneDivider ++javax/swing/plaf/metal/MetalSplitPaneDivider$1 ++javax/swing/plaf/metal/MetalSplitPaneDivider$2 ++javax/swing/plaf/metal/MetalSplitPaneUI ++javax/swing/plaf/metal/MetalTabbedPaneUI ++javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout ++javax/swing/plaf/metal/MetalTextFieldUI ++javax/swing/plaf/metal/MetalTheme ++javax/swing/plaf/metal/MetalToggleButtonUI ++javax/swing/plaf/metal/MetalToolBarUI ++javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener ++javax/swing/plaf/metal/MetalTreeUI ++javax/swing/plaf/metal/MetalTreeUI$LineListener ++javax/swing/plaf/metal/OceanTheme ++javax/swing/plaf/metal/OceanTheme$1 ++javax/swing/plaf/metal/OceanTheme$2 ++javax/swing/plaf/metal/OceanTheme$3 ++javax/swing/plaf/metal/OceanTheme$4 ++javax/swing/plaf/metal/OceanTheme$5 ++javax/swing/plaf/metal/OceanTheme$6 ++javax/swing/plaf/synth/SynthConstants ++javax/swing/plaf/synth/SynthUI ++javax/swing/table/AbstractTableModel ++javax/swing/table/DefaultTableCellRenderer ++javax/swing/table/DefaultTableColumnModel ++javax/swing/table/DefaultTableModel ++javax/swing/table/JTableHeader ++javax/swing/table/TableCellEditor ++javax/swing/table/TableCellRenderer ++javax/swing/table/TableColumn ++javax/swing/table/TableColumnModel ++javax/swing/table/TableModel ++javax/swing/text/AbstractDocument ++javax/swing/text/AbstractDocument$1 ++javax/swing/text/AbstractDocument$AbstractElement ++javax/swing/text/AbstractDocument$AttributeContext ++javax/swing/text/AbstractDocument$BidiElement ++javax/swing/text/AbstractDocument$BidiRootElement ++javax/swing/text/AbstractDocument$BranchElement ++javax/swing/text/AbstractDocument$Content ++javax/swing/text/AbstractDocument$DefaultDocumentEvent ++javax/swing/text/AbstractDocument$ElementEdit ++javax/swing/text/AbstractDocument$InsertStringResult ++javax/swing/text/AbstractDocument$LeafElement ++javax/swing/text/AttributeSet ++javax/swing/text/AttributeSet$CharacterAttribute ++javax/swing/text/AttributeSet$ColorAttribute ++javax/swing/text/AttributeSet$FontAttribute ++javax/swing/text/AttributeSet$ParagraphAttribute ++javax/swing/text/Caret ++javax/swing/text/DefaultCaret ++javax/swing/text/DefaultCaret$Handler ++javax/swing/text/DefaultEditorKit ++javax/swing/text/DefaultEditorKit$BeepAction ++javax/swing/text/DefaultEditorKit$BeginAction ++javax/swing/text/DefaultEditorKit$BeginLineAction ++javax/swing/text/DefaultEditorKit$BeginParagraphAction ++javax/swing/text/DefaultEditorKit$BeginWordAction ++javax/swing/text/DefaultEditorKit$CopyAction ++javax/swing/text/DefaultEditorKit$CutAction ++javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction ++javax/swing/text/DefaultEditorKit$DeleteNextCharAction ++javax/swing/text/DefaultEditorKit$DeletePrevCharAction ++javax/swing/text/DefaultEditorKit$DeleteWordAction ++javax/swing/text/DefaultEditorKit$DumpModelAction ++javax/swing/text/DefaultEditorKit$EndAction ++javax/swing/text/DefaultEditorKit$EndLineAction ++javax/swing/text/DefaultEditorKit$EndParagraphAction ++javax/swing/text/DefaultEditorKit$EndWordAction ++javax/swing/text/DefaultEditorKit$InsertBreakAction ++javax/swing/text/DefaultEditorKit$InsertContentAction ++javax/swing/text/DefaultEditorKit$InsertTabAction ++javax/swing/text/DefaultEditorKit$NextVisualPositionAction ++javax/swing/text/DefaultEditorKit$NextWordAction ++javax/swing/text/DefaultEditorKit$PageAction ++javax/swing/text/DefaultEditorKit$PasteAction ++javax/swing/text/DefaultEditorKit$PreviousWordAction ++javax/swing/text/DefaultEditorKit$ReadOnlyAction ++javax/swing/text/DefaultEditorKit$SelectAllAction ++javax/swing/text/DefaultEditorKit$SelectLineAction ++javax/swing/text/DefaultEditorKit$SelectParagraphAction ++javax/swing/text/DefaultEditorKit$SelectWordAction ++javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction ++javax/swing/text/DefaultEditorKit$UnselectAction ++javax/swing/text/DefaultEditorKit$VerticalPageAction ++javax/swing/text/DefaultEditorKit$WritableAction ++javax/swing/text/DefaultHighlighter ++javax/swing/text/DefaultHighlighter$DefaultHighlightPainter ++javax/swing/text/DefaultHighlighter$SafeDamager ++javax/swing/text/Document ++javax/swing/text/EditorKit ++javax/swing/text/Element ++javax/swing/text/FieldView ++javax/swing/text/GapContent ++javax/swing/text/GapContent$InsertUndo ++javax/swing/text/GapContent$MarkData ++javax/swing/text/GapContent$MarkVector ++javax/swing/text/GapContent$StickyPosition ++javax/swing/text/GapVector ++javax/swing/text/Highlighter ++javax/swing/text/Highlighter$Highlight ++javax/swing/text/Highlighter$HighlightPainter ++javax/swing/text/JTextComponent ++javax/swing/text/JTextComponent$1 ++javax/swing/text/JTextComponent$DefaultKeymap ++javax/swing/text/JTextComponent$KeymapActionMap ++javax/swing/text/JTextComponent$KeymapWrapper ++javax/swing/text/JTextComponent$MutableCaretEvent ++javax/swing/text/Keymap ++javax/swing/text/LayeredHighlighter ++javax/swing/text/LayeredHighlighter$LayerPainter ++javax/swing/text/MutableAttributeSet ++javax/swing/text/PlainDocument ++javax/swing/text/PlainView ++javax/swing/text/Position ++javax/swing/text/Position$Bias ++javax/swing/text/Segment ++javax/swing/text/SegmentCache ++javax/swing/text/SegmentCache$CachedSegment ++javax/swing/text/SimpleAttributeSet ++javax/swing/text/SimpleAttributeSet$EmptyAttributeSet ++javax/swing/text/Style ++javax/swing/text/StyleConstants ++javax/swing/text/StyleConstants$CharacterConstants ++javax/swing/text/StyleConstants$ColorConstants ++javax/swing/text/StyleConstants$FontConstants ++javax/swing/text/StyleConstants$ParagraphConstants ++javax/swing/text/StyleContext ++javax/swing/text/StyleContext$FontKey ++javax/swing/text/StyleContext$KeyEnumeration ++javax/swing/text/StyleContext$NamedStyle ++javax/swing/text/StyleContext$SmallAttributeSet ++javax/swing/text/TabExpander ++javax/swing/text/TextAction ++javax/swing/text/Utilities ++javax/swing/text/View ++javax/swing/text/ViewFactory ++javax/swing/tree/AbstractLayoutCache ++javax/swing/tree/AbstractLayoutCache$NodeDimensions ++javax/swing/tree/DefaultMutableTreeNode ++javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration ++javax/swing/tree/DefaultTreeCellEditor ++javax/swing/tree/DefaultTreeCellEditor$1 ++javax/swing/tree/DefaultTreeCellEditor$DefaultTextField ++javax/swing/tree/DefaultTreeCellEditor$EditorContainer ++javax/swing/tree/DefaultTreeCellRenderer ++javax/swing/tree/DefaultTreeModel ++javax/swing/tree/DefaultTreeSelectionModel ++javax/swing/tree/MutableTreeNode ++javax/swing/tree/PathPlaceHolder ++javax/swing/tree/RowMapper ++javax/swing/tree/TreeCellEditor ++javax/swing/tree/TreeCellRenderer ++javax/swing/tree/TreeModel ++javax/swing/tree/TreeNode ++javax/swing/tree/TreePath ++javax/swing/tree/TreeSelectionModel ++javax/swing/tree/VariableHeightLayoutCache ++javax/swing/tree/VariableHeightLayoutCache$TreeStateNode ++javax/swing/undo/AbstractUndoableEdit ++javax/swing/undo/CompoundEdit ++javax/swing/undo/UndoableEdit ++javax/xml/parsers/DocumentBuilder ++javax/xml/parsers/DocumentBuilderFactory ++javax/xml/parsers/FactoryFinder ++javax/xml/parsers/FactoryFinder$1 ++javax/xml/parsers/ParserConfigurationException ++javax/xml/parsers/SecuritySupport ++javax/xml/parsers/SecuritySupport$2 ++javax/xml/parsers/SecuritySupport$5 ++org/w3c/dom/Attr ++org/w3c/dom/CDATASection ++org/w3c/dom/CharacterData ++org/w3c/dom/Comment ++org/w3c/dom/DOMException ++org/w3c/dom/Document ++org/w3c/dom/DocumentFragment ++org/w3c/dom/DocumentType ++org/w3c/dom/Element ++org/w3c/dom/Entity ++org/w3c/dom/EntityReference ++org/w3c/dom/NamedNodeMap ++org/w3c/dom/Node ++org/w3c/dom/NodeList ++org/w3c/dom/Notation ++org/w3c/dom/ProcessingInstruction ++org/w3c/dom/Text ++org/w3c/dom/events/DocumentEvent ++org/w3c/dom/events/Event ++org/w3c/dom/events/EventException ++org/w3c/dom/events/EventTarget ++org/w3c/dom/events/MutationEvent ++org/w3c/dom/ranges/DocumentRange ++org/w3c/dom/ranges/Range ++org/w3c/dom/traversal/DocumentTraversal ++org/w3c/dom/traversal/NodeIterator ++org/w3c/dom/traversal/TreeWalker ++org/xml/sax/AttributeList ++org/xml/sax/ContentHandler ++org/xml/sax/DTDHandler ++org/xml/sax/EntityResolver ++org/xml/sax/ErrorHandler ++org/xml/sax/InputSource ++org/xml/sax/Locator ++org/xml/sax/SAXException ++org/xml/sax/SAXNotRecognizedException ++org/xml/sax/SAXNotSupportedException ++org/xml/sax/SAXParseException ++org/xml/sax/helpers/DefaultHandler ++sun/awt/AWTAccessor ++sun/awt/AWTAccessor$AWTEventAccessor ++sun/awt/AWTAccessor$ClientPropertyKeyAccessor ++sun/awt/AWTAccessor$ComponentAccessor ++sun/awt/AWTAccessor$ContainerAccessor ++sun/awt/AWTAccessor$CursorAccessor ++sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor ++sun/awt/AWTAccessor$EventQueueAccessor ++sun/awt/AWTAccessor$FrameAccessor ++sun/awt/AWTAccessor$InputEventAccessor ++sun/awt/AWTAccessor$InvocationEventAccessor ++sun/awt/AWTAccessor$KeyEventAccessor ++sun/awt/AWTAccessor$KeyboardFocusManagerAccessor ++sun/awt/AWTAccessor$SequencedEventAccessor ++sun/awt/AWTAccessor$ToolkitAccessor ++sun/awt/AWTAccessor$WindowAccessor ++sun/awt/AWTAutoShutdown ++sun/awt/AWTIcon32_java_icon16_png ++sun/awt/AWTIcon32_java_icon24_png ++sun/awt/AWTIcon32_java_icon32_png ++sun/awt/AWTIcon32_java_icon48_png ++sun/awt/AppContext ++sun/awt/AppContext$1 ++sun/awt/AppContext$2 ++sun/awt/AppContext$3 ++sun/awt/AppContext$6 ++sun/awt/AppContext$GetAppContextLock ++sun/awt/AppContext$State ++sun/awt/CausedFocusEvent ++sun/awt/CausedFocusEvent$Cause ++sun/awt/ComponentFactory ++sun/awt/ConstrainableGraphics ++sun/awt/DisplayChangedListener ++sun/awt/EmbeddedFrame ++sun/awt/EventQueueDelegate ++sun/awt/EventQueueItem ++sun/awt/FontConfiguration ++sun/awt/FontDescriptor ++sun/awt/GlobalCursorManager ++sun/awt/GlobalCursorManager$NativeUpdater ++sun/awt/HeadlessToolkit ++sun/awt/IconInfo ++sun/awt/InputMethodSupport ++sun/awt/KeyboardFocusManagerPeerImpl ++sun/awt/KeyboardFocusManagerPeerProvider ++sun/awt/LightweightFrame ++sun/awt/ModalityListener ++sun/awt/MostRecentKeyValue ++sun/awt/NullComponentPeer ++sun/awt/OSInfo ++sun/awt/OSInfo$1 ++sun/awt/OSInfo$OSType ++sun/awt/OSInfo$WindowsVersion ++sun/awt/PaintEventDispatcher ++sun/awt/PeerEvent ++sun/awt/PostEventQueue ++sun/awt/RepaintArea ++sun/awt/RequestFocusController ++sun/awt/SubRegionShowable ++sun/awt/SunDisplayChanger ++sun/awt/SunGraphicsCallback ++sun/awt/SunHints ++sun/awt/SunHints$Key ++sun/awt/SunHints$LCDContrastKey ++sun/awt/SunHints$Value ++sun/awt/SunToolkit ++sun/awt/SunToolkit$ModalityListenerList ++sun/awt/TimedWindowEvent ++sun/awt/UNIXToolkit ++sun/awt/WindowClosingListener ++sun/awt/WindowClosingSupport ++sun/awt/X11/AwtGraphicsConfigData ++sun/awt/X11/AwtScreenData ++sun/awt/X11/MotifColorUtilities ++sun/awt/X11/MotifDnDConstants ++sun/awt/X11/MotifDnDDragSourceProtocol ++sun/awt/X11/MotifDnDDropTargetProtocol ++sun/awt/X11/Native ++sun/awt/X11/Native$1 ++sun/awt/X11/OwnershipListener ++sun/awt/X11/PropMwmHints ++sun/awt/X11/UnsafeXDisposerRecord ++sun/awt/X11/WindowDimensions ++sun/awt/X11/WindowPropertyGetter ++sun/awt/X11/XAWTXSettings ++sun/awt/X11/XAnyEvent ++sun/awt/X11/XAtom ++sun/awt/X11/XAtomList ++sun/awt/X11/XAwtState ++sun/awt/X11/XBaseWindow ++sun/awt/X11/XBaseWindow$1 ++sun/awt/X11/XBaseWindow$InitialiseState ++sun/awt/X11/XBaseWindow$StateLock ++sun/awt/X11/XCanvasPeer ++sun/awt/X11/XClientMessageEvent ++sun/awt/X11/XClipboard ++sun/awt/X11/XComponentPeer ++sun/awt/X11/XComponentPeer$1 ++sun/awt/X11/XConfigureEvent ++sun/awt/X11/XContentWindow ++sun/awt/X11/XCreateWindowParams ++sun/awt/X11/XDecoratedPeer ++sun/awt/X11/XDnDConstants ++sun/awt/X11/XDnDDragSourceProtocol ++sun/awt/X11/XDnDDropTargetProtocol ++sun/awt/X11/XDragAndDropProtocols ++sun/awt/X11/XDragSourceContextPeer ++sun/awt/X11/XDragSourceProtocol ++sun/awt/X11/XDragSourceProtocolListener ++sun/awt/X11/XDropTargetContextPeer ++sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl ++sun/awt/X11/XDropTargetEventProcessor ++sun/awt/X11/XDropTargetProtocol ++sun/awt/X11/XDropTargetProtocolListener ++sun/awt/X11/XDropTargetRegistry ++sun/awt/X11/XEmbeddedFramePeer ++sun/awt/X11/XErrorEvent ++sun/awt/X11/XErrorHandler ++sun/awt/X11/XErrorHandler$IgnoreBadWindowHandler ++sun/awt/X11/XErrorHandler$VerifyChangePropertyHandler ++sun/awt/X11/XErrorHandler$XBaseErrorHandler ++sun/awt/X11/XErrorHandler$XErrorHandlerWithFlag ++sun/awt/X11/XErrorHandler$XShmAttachHandler ++sun/awt/X11/XErrorHandlerUtil ++sun/awt/X11/XEvent ++sun/awt/X11/XEventDispatcher ++sun/awt/X11/XExposeEvent ++sun/awt/X11/XFocusChangeEvent ++sun/awt/X11/XFocusProxyWindow ++sun/awt/X11/XFramePeer ++sun/awt/X11/XGlobalCursorManager ++sun/awt/X11/XInputMethod ++sun/awt/X11/XInputMethodDescriptor ++sun/awt/X11/XKeyboardFocusManagerPeer ++sun/awt/X11/XLabelPeer ++sun/awt/X11/XLayerProtocol ++sun/awt/X11/XMSelection ++sun/awt/X11/XMSelection$1 ++sun/awt/X11/XMSelection$3 ++sun/awt/X11/XMSelectionListener ++sun/awt/X11/XModifierKeymap ++sun/awt/X11/XNETProtocol ++sun/awt/X11/XPanelPeer ++sun/awt/X11/XPropertyCache ++sun/awt/X11/XPropertyEvent ++sun/awt/X11/XProtocol ++sun/awt/X11/XRepaintArea ++sun/awt/X11/XReparentEvent ++sun/awt/X11/XRootWindow ++sun/awt/X11/XSelection ++sun/awt/X11/XSelection$IncrementalTransferHandler ++sun/awt/X11/XSelection$SelectionEventHandler ++sun/awt/X11/XSetWindowAttributes ++sun/awt/X11/XSizeHints ++sun/awt/X11/XStateProtocol ++sun/awt/X11/XSystemTrayPeer ++sun/awt/X11/XToolkit ++sun/awt/X11/XToolkit$1 ++sun/awt/X11/XToolkit$2 ++sun/awt/X11/XToolkit$2$1 ++sun/awt/X11/XToolkit$3 ++sun/awt/X11/XToolkit$4 ++sun/awt/X11/XToolkit$5 ++sun/awt/X11/XUnmapEvent ++sun/awt/X11/XVisibilityEvent ++sun/awt/X11/XVisualInfo ++sun/awt/X11/XWINProtocol ++sun/awt/X11/XWM ++sun/awt/X11/XWM$1 ++sun/awt/X11/XWMHints ++sun/awt/X11/XWindow ++sun/awt/X11/XWindowAttributes ++sun/awt/X11/XWindowAttributesData ++sun/awt/X11/XWindowPeer ++sun/awt/X11/XWindowPeer$2 ++sun/awt/X11/XWindowPeer$4 ++sun/awt/X11/XWrapperBase ++sun/awt/X11/XlibUtil ++sun/awt/X11/XlibWrapper ++sun/awt/X11ComponentPeer ++sun/awt/X11FontManager ++sun/awt/X11GraphicsConfig ++sun/awt/X11GraphicsConfig$X11GCDisposerRecord ++sun/awt/X11GraphicsDevice ++sun/awt/X11GraphicsEnvironment ++sun/awt/X11GraphicsEnvironment$1 ++sun/awt/X11InputMethod ++sun/awt/X11InputMethodDescriptor ++sun/awt/XSettings ++sun/awt/XSettings$Update ++sun/awt/datatransfer/SunClipboard ++sun/awt/dnd/SunDragSourceContextPeer ++sun/awt/dnd/SunDropTargetContextPeer ++sun/awt/dnd/SunDropTargetEvent ++sun/awt/event/IgnorePaintEvent ++sun/awt/geom/PathConsumer2D ++sun/awt/im/ExecutableInputMethodManager ++sun/awt/im/ExecutableInputMethodManager$3 ++sun/awt/im/InputContext ++sun/awt/im/InputMethodAdapter ++sun/awt/im/InputMethodContext ++sun/awt/im/InputMethodLocator ++sun/awt/im/InputMethodManager ++sun/awt/image/BufImgSurfaceData ++sun/awt/image/BufImgSurfaceData$ICMColorData ++sun/awt/image/BufImgSurfaceManager ++sun/awt/image/BufferedImageGraphicsConfig ++sun/awt/image/ByteComponentRaster ++sun/awt/image/ByteInterleavedRaster ++sun/awt/image/BytePackedRaster ++sun/awt/image/FetcherInfo ++sun/awt/image/GifFrame ++sun/awt/image/GifImageDecoder ++sun/awt/image/ImageConsumerQueue ++sun/awt/image/ImageDecoder ++sun/awt/image/ImageDecoder$1 ++sun/awt/image/ImageFetchable ++sun/awt/image/ImageFetcher ++sun/awt/image/ImageFetcher$1 ++sun/awt/image/ImageRepresentation ++sun/awt/image/ImageWatched ++sun/awt/image/ImageWatched$Link ++sun/awt/image/ImageWatched$WeakLink ++sun/awt/image/InputStreamImageSource ++sun/awt/image/IntegerComponentRaster ++sun/awt/image/IntegerInterleavedRaster ++sun/awt/image/NativeLibLoader ++sun/awt/image/NativeLibLoader$1 ++sun/awt/image/OffScreenImage ++sun/awt/image/PNGFilterInputStream ++sun/awt/image/PNGImageDecoder ++sun/awt/image/PixelConverter ++sun/awt/image/PixelConverter$Argb ++sun/awt/image/PixelConverter$ArgbBm ++sun/awt/image/PixelConverter$ArgbPre ++sun/awt/image/PixelConverter$Bgrx ++sun/awt/image/PixelConverter$ByteGray ++sun/awt/image/PixelConverter$Rgba ++sun/awt/image/PixelConverter$RgbaPre ++sun/awt/image/PixelConverter$Rgbx ++sun/awt/image/PixelConverter$Ushort4444Argb ++sun/awt/image/PixelConverter$Ushort555Rgb ++sun/awt/image/PixelConverter$Ushort555Rgbx ++sun/awt/image/PixelConverter$Ushort565Rgb ++sun/awt/image/PixelConverter$UshortGray ++sun/awt/image/PixelConverter$Xbgr ++sun/awt/image/PixelConverter$Xrgb ++sun/awt/image/SunVolatileImage ++sun/awt/image/SunWritableRaster ++sun/awt/image/SunWritableRaster$DataStealer ++sun/awt/image/SurfaceManager ++sun/awt/image/SurfaceManager$ImageAccessor ++sun/awt/image/SurfaceManager$ProxiedGraphicsConfig ++sun/awt/image/ToolkitImage ++sun/awt/image/URLImageSource ++sun/awt/image/VolatileSurfaceManager ++sun/awt/motif/MFontConfiguration ++sun/awt/resources/awt ++sun/awt/util/IdentityArrayList ++sun/dc/DuctusRenderingEngine ++sun/dc/path/PathConsumer ++sun/dc/pr/PathDasher ++sun/dc/pr/PathDasher$1 ++sun/dc/pr/PathStroker ++sun/dc/pr/PathStroker$1 ++sun/font/AttributeValues ++sun/font/CMap ++sun/font/CMap$CMapFormat12 ++sun/font/CMap$NullCMapClass ++sun/font/CharToGlyphMapper ++sun/font/CompositeFont ++sun/font/CompositeFontDescriptor ++sun/font/CompositeGlyphMapper ++sun/font/CompositeStrike ++sun/font/CoreMetrics ++sun/font/EAttribute ++sun/font/FcFontConfiguration ++sun/font/FileFont ++sun/font/FileFontStrike ++sun/font/Font2D ++sun/font/Font2DHandle ++sun/font/FontAccess ++sun/font/FontConfigManager ++sun/font/FontConfigManager$FcCompFont ++sun/font/FontConfigManager$FontConfigFont ++sun/font/FontConfigManager$FontConfigInfo ++sun/font/FontDesignMetrics ++sun/font/FontDesignMetrics$KeyReference ++sun/font/FontDesignMetrics$MetricsKey ++sun/font/FontFamily ++sun/font/FontLineMetrics ++sun/font/FontManager ++sun/font/FontManagerFactory ++sun/font/FontManagerFactory$1 ++sun/font/FontManagerForSGE ++sun/font/FontManagerNativeLibrary ++sun/font/FontManagerNativeLibrary$1 ++sun/font/FontScaler ++sun/font/FontStrike ++sun/font/FontStrikeDesc ++sun/font/FontStrikeDisposer ++sun/font/FontUtilities ++sun/font/FontUtilities$1 ++sun/font/GlyphList ++sun/font/PhysicalFont ++sun/font/PhysicalStrike ++sun/font/StandardGlyphVector ++sun/font/StandardGlyphVector$GlyphStrike ++sun/font/StrikeCache ++sun/font/StrikeCache$1 ++sun/font/StrikeCache$DisposableStrike ++sun/font/StrikeCache$SoftDisposerRef ++sun/font/StrikeMetrics ++sun/font/SunFontManager ++sun/font/SunFontManager$1 ++sun/font/SunFontManager$11 ++sun/font/SunFontManager$2 ++sun/font/SunFontManager$3 ++sun/font/SunFontManager$FontRegistrationInfo ++sun/font/SunFontManager$T1Filter ++sun/font/SunFontManager$TTFilter ++sun/font/T2KFontScaler ++sun/font/T2KFontScaler$1 ++sun/font/TrueTypeFont ++sun/font/TrueTypeFont$1 ++sun/font/TrueTypeFont$DirectoryEntry ++sun/font/TrueTypeFont$TTDisposerRecord ++sun/font/TrueTypeGlyphMapper ++sun/font/Type1Font ++sun/font/Type1Font$1 ++sun/font/X11TextRenderer ++sun/java2d/BackBufferCapsProvider ++sun/java2d/DefaultDisposerRecord ++sun/java2d/DestSurfaceProvider ++sun/java2d/Disposer ++sun/java2d/Disposer$1 ++sun/java2d/Disposer$2 ++sun/java2d/Disposer$PollDisposable ++sun/java2d/DisposerRecord ++sun/java2d/DisposerTarget ++sun/java2d/FontSupport ++sun/java2d/InvalidPipeException ++sun/java2d/NullSurfaceData ++sun/java2d/StateTrackable ++sun/java2d/StateTrackable$State ++sun/java2d/StateTrackableDelegate ++sun/java2d/StateTrackableDelegate$2 ++sun/java2d/SunGraphics2D ++sun/java2d/SunGraphicsEnvironment ++sun/java2d/SunGraphicsEnvironment$1 ++sun/java2d/Surface ++sun/java2d/SurfaceData ++sun/java2d/SurfaceData$PixelToPgramLoopConverter ++sun/java2d/SurfaceData$PixelToShapeLoopConverter ++sun/java2d/SurfaceManagerFactory ++sun/java2d/UnixSurfaceManagerFactory ++sun/java2d/cmm/CMSManager ++sun/java2d/cmm/ProfileActivator ++sun/java2d/cmm/ProfileDeferralInfo ++sun/java2d/cmm/ProfileDeferralMgr ++sun/java2d/loops/Blit ++sun/java2d/loops/BlitBg ++sun/java2d/loops/CompositeType ++sun/java2d/loops/CustomComponent ++sun/java2d/loops/DrawGlyphList ++sun/java2d/loops/DrawGlyphListAA ++sun/java2d/loops/DrawGlyphListLCD ++sun/java2d/loops/DrawLine ++sun/java2d/loops/DrawParallelogram ++sun/java2d/loops/DrawPath ++sun/java2d/loops/DrawPolygons ++sun/java2d/loops/DrawRect ++sun/java2d/loops/FillParallelogram ++sun/java2d/loops/FillPath ++sun/java2d/loops/FillRect ++sun/java2d/loops/FillSpans ++sun/java2d/loops/FontInfo ++sun/java2d/loops/GeneralRenderer ++sun/java2d/loops/GraphicsPrimitive ++sun/java2d/loops/GraphicsPrimitiveMgr ++sun/java2d/loops/GraphicsPrimitiveMgr$1 ++sun/java2d/loops/GraphicsPrimitiveMgr$2 ++sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec ++sun/java2d/loops/GraphicsPrimitiveProxy ++sun/java2d/loops/MaskBlit ++sun/java2d/loops/MaskFill ++sun/java2d/loops/RenderCache ++sun/java2d/loops/RenderCache$Entry ++sun/java2d/loops/RenderLoops ++sun/java2d/loops/ScaledBlit ++sun/java2d/loops/SurfaceType ++sun/java2d/loops/TransformHelper ++sun/java2d/loops/XORComposite ++sun/java2d/opengl/GLXGraphicsConfig ++sun/java2d/opengl/OGLGraphicsConfig ++sun/java2d/pipe/AAShapePipe ++sun/java2d/pipe/AATextRenderer ++sun/java2d/pipe/AlphaColorPipe ++sun/java2d/pipe/AlphaPaintPipe ++sun/java2d/pipe/CompositePipe ++sun/java2d/pipe/DrawImage ++sun/java2d/pipe/DrawImagePipe ++sun/java2d/pipe/GeneralCompositePipe ++sun/java2d/pipe/GlyphListLoopPipe ++sun/java2d/pipe/GlyphListPipe ++sun/java2d/pipe/LCDTextRenderer ++sun/java2d/pipe/LoopBasedPipe ++sun/java2d/pipe/LoopPipe ++sun/java2d/pipe/NullPipe ++sun/java2d/pipe/OutlineTextRenderer ++sun/java2d/pipe/ParallelogramPipe ++sun/java2d/pipe/PixelDrawPipe ++sun/java2d/pipe/PixelFillPipe ++sun/java2d/pipe/PixelToParallelogramConverter ++sun/java2d/pipe/PixelToShapeConverter ++sun/java2d/pipe/Region ++sun/java2d/pipe/Region$ImmutableRegion ++sun/java2d/pipe/RegionIterator ++sun/java2d/pipe/RenderingEngine ++sun/java2d/pipe/RenderingEngine$1 ++sun/java2d/pipe/ShapeDrawPipe ++sun/java2d/pipe/ShapeSpanIterator ++sun/java2d/pipe/SolidTextRenderer ++sun/java2d/pipe/SpanClipRenderer ++sun/java2d/pipe/SpanIterator ++sun/java2d/pipe/SpanShapeRenderer ++sun/java2d/pipe/SpanShapeRenderer$Composite ++sun/java2d/pipe/TextPipe ++sun/java2d/pipe/TextRenderer ++sun/java2d/pipe/ValidatePipe ++sun/java2d/pipe/hw/AccelGraphicsConfig ++sun/java2d/pipe/hw/BufferedContextProvider ++sun/java2d/x11/X11Renderer ++sun/java2d/x11/X11SurfaceData ++sun/java2d/x11/X11SurfaceData$LazyPipe ++sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData ++sun/java2d/x11/X11VolatileSurfaceManager ++sun/java2d/x11/XSurfaceData ++sun/java2d/xr/XRGraphicsConfig ++sun/launcher/LauncherHelper ++sun/launcher/LauncherHelper$FXHelper ++sun/misc/ASCIICaseInsensitiveComparator ++sun/misc/Cleaner ++sun/misc/CompoundEnumeration ++sun/misc/ExtensionDependency ++sun/misc/FDBigInteger ++sun/misc/FileURLMapper ++sun/misc/FloatingDecimal ++sun/misc/FloatingDecimal$1 ++sun/misc/FloatingDecimal$ASCIIToBinaryBuffer ++sun/misc/FloatingDecimal$ASCIIToBinaryConverter ++sun/misc/FloatingDecimal$BinaryToASCIIBuffer ++sun/misc/FloatingDecimal$BinaryToASCIIConverter ++sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer ++sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer ++sun/misc/IOUtils ++sun/misc/JarIndex ++sun/misc/JavaAWTAccess ++sun/misc/JavaIOFileDescriptorAccess ++sun/misc/JavaLangAccess ++sun/misc/JavaNetAccess ++sun/misc/JavaNioAccess ++sun/misc/JavaSecurityAccess ++sun/misc/JavaSecurityProtectionDomainAccess ++sun/misc/JavaUtilJarAccess ++sun/misc/JavaUtilZipFileAccess ++sun/misc/Launcher ++sun/misc/Launcher$AppClassLoader ++sun/misc/Launcher$AppClassLoader$1 ++sun/misc/Launcher$BootClassPathHolder ++sun/misc/Launcher$BootClassPathHolder$1 ++sun/misc/Launcher$ExtClassLoader ++sun/misc/Launcher$ExtClassLoader$1 ++sun/misc/Launcher$Factory ++sun/misc/MetaIndex ++sun/misc/NativeSignalHandler ++sun/misc/OSEnvironment ++sun/misc/Perf ++sun/misc/Perf$GetPerfAction ++sun/misc/PerfCounter ++sun/misc/PerfCounter$CoreCounters ++sun/misc/PerformanceLogger ++sun/misc/PerformanceLogger$TimeData ++sun/misc/PostVMInitHook ++sun/misc/Resource ++sun/misc/SharedSecrets ++sun/misc/Signal ++sun/misc/SignalHandler ++sun/misc/SoftCache ++sun/misc/SoftCache$ValueCell ++sun/misc/URLClassPath ++sun/misc/URLClassPath$1 ++sun/misc/URLClassPath$2 ++sun/misc/URLClassPath$3 ++sun/misc/URLClassPath$FileLoader ++sun/misc/URLClassPath$JarLoader ++sun/misc/URLClassPath$JarLoader$1 ++sun/misc/URLClassPath$JarLoader$2 ++sun/misc/URLClassPath$Loader ++sun/misc/Unsafe ++sun/misc/VM ++sun/misc/Version ++sun/net/DefaultProgressMeteringPolicy ++sun/net/InetAddressCachePolicy ++sun/net/InetAddressCachePolicy$1 ++sun/net/InetAddressCachePolicy$2 ++sun/net/NetHooks ++sun/net/NetHooks$Provider ++sun/net/NetProperties ++sun/net/NetProperties$1 ++sun/net/ProgressMeteringPolicy ++sun/net/ProgressMonitor ++sun/net/ResourceManager ++sun/net/sdp/SdpProvider ++sun/net/spi/DefaultProxySelector ++sun/net/spi/DefaultProxySelector$1 ++sun/net/spi/DefaultProxySelector$3 ++sun/net/spi/DefaultProxySelector$NonProxyInfo ++sun/net/spi/nameservice/NameService ++sun/net/util/IPAddressUtil ++sun/net/util/URLUtil ++sun/net/www/MessageHeader ++sun/net/www/MimeEntry ++sun/net/www/MimeTable ++sun/net/www/MimeTable$1 ++sun/net/www/MimeTable$DefaultInstanceHolder ++sun/net/www/MimeTable$DefaultInstanceHolder$1 ++sun/net/www/ParseUtil ++sun/net/www/URLConnection ++sun/net/www/protocol/file/FileURLConnection ++sun/net/www/protocol/file/Handler ++sun/net/www/protocol/http/Handler ++sun/net/www/protocol/jar/Handler ++sun/net/www/protocol/jar/JarFileFactory ++sun/net/www/protocol/jar/JarURLConnection ++sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream ++sun/net/www/protocol/jar/URLJarFile ++sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController ++sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry ++sun/nio/ByteBuffered ++sun/nio/ch/DirectBuffer ++sun/nio/ch/FileChannelImpl ++sun/nio/ch/FileChannelImpl$Unmapper ++sun/nio/ch/FileDispatcher ++sun/nio/ch/FileDispatcherImpl ++sun/nio/ch/IOStatus ++sun/nio/ch/IOUtil ++sun/nio/ch/IOUtil$1 ++sun/nio/ch/Interruptible ++sun/nio/ch/NativeDispatcher ++sun/nio/ch/NativeThread ++sun/nio/ch/NativeThreadSet ++sun/nio/ch/Util ++sun/nio/ch/Util$1 ++sun/nio/ch/Util$4 ++sun/nio/ch/Util$BufferCache ++sun/nio/cs/ArrayDecoder ++sun/nio/cs/ArrayEncoder ++sun/nio/cs/FastCharsetProvider ++sun/nio/cs/HistoricallyNamedCharset ++sun/nio/cs/ISO_8859_1 ++sun/nio/cs/ISO_8859_1$Encoder ++sun/nio/cs/StandardCharsets ++sun/nio/cs/StandardCharsets$Aliases ++sun/nio/cs/StandardCharsets$Cache ++sun/nio/cs/StandardCharsets$Classes ++sun/nio/cs/StreamDecoder ++sun/nio/cs/StreamEncoder ++sun/nio/cs/Surrogate ++sun/nio/cs/Surrogate$Parser ++sun/nio/cs/US_ASCII ++sun/nio/cs/US_ASCII$Decoder ++sun/nio/cs/UTF_16 ++sun/nio/cs/UTF_16$Decoder ++sun/nio/cs/UTF_16BE ++sun/nio/cs/UTF_16LE ++sun/nio/cs/UTF_8 ++sun/nio/cs/UTF_8$Decoder ++sun/nio/cs/UTF_8$Encoder ++sun/nio/cs/Unicode ++sun/nio/cs/UnicodeDecoder ++sun/print/PrinterGraphicsConfig ++sun/reflect/AccessorGenerator ++sun/reflect/BootstrapConstructorAccessorImpl ++sun/reflect/ByteVector ++sun/reflect/ByteVectorFactory ++sun/reflect/ByteVectorImpl ++sun/reflect/CallerSensitive ++sun/reflect/ClassDefiner ++sun/reflect/ClassDefiner$1 ++sun/reflect/ClassFileAssembler ++sun/reflect/ClassFileConstants ++sun/reflect/ConstantPool ++sun/reflect/ConstructorAccessor ++sun/reflect/ConstructorAccessorImpl ++sun/reflect/DelegatingClassLoader ++sun/reflect/DelegatingConstructorAccessorImpl ++sun/reflect/DelegatingMethodAccessorImpl ++sun/reflect/FieldAccessor ++sun/reflect/FieldAccessorImpl ++sun/reflect/Label ++sun/reflect/Label$PatchInfo ++sun/reflect/LangReflectAccess ++sun/reflect/MagicAccessorImpl ++sun/reflect/MethodAccessor ++sun/reflect/MethodAccessorGenerator ++sun/reflect/MethodAccessorGenerator$1 ++sun/reflect/MethodAccessorImpl ++sun/reflect/NativeConstructorAccessorImpl ++sun/reflect/NativeMethodAccessorImpl ++sun/reflect/Reflection ++sun/reflect/ReflectionFactory ++sun/reflect/ReflectionFactory$1 ++sun/reflect/ReflectionFactory$GetReflectionFactoryAction ++sun/reflect/SerializationConstructorAccessorImpl ++sun/reflect/UTF8 ++sun/reflect/UnsafeFieldAccessorFactory ++sun/reflect/UnsafeFieldAccessorImpl ++sun/reflect/UnsafeObjectFieldAccessorImpl ++sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl ++sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl ++sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl ++sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl ++sun/reflect/UnsafeStaticFieldAccessorImpl ++sun/reflect/annotation/AnnotationType ++sun/reflect/generics/repository/AbstractRepository ++sun/reflect/generics/repository/ClassRepository ++sun/reflect/generics/repository/GenericDeclRepository ++sun/reflect/misc/MethodUtil ++sun/reflect/misc/MethodUtil$1 ++sun/reflect/misc/ReflectUtil ++sun/security/action/GetBooleanAction ++sun/security/action/GetIntegerAction ++sun/security/action/GetPropertyAction ++sun/security/jca/GetInstance ++sun/security/jca/GetInstance$Instance ++sun/security/jca/ProviderConfig ++sun/security/jca/ProviderConfig$2 ++sun/security/jca/ProviderList ++sun/security/jca/ProviderList$1 ++sun/security/jca/ProviderList$2 ++sun/security/jca/ProviderList$3 ++sun/security/jca/ProviderList$ServiceList ++sun/security/jca/ProviderList$ServiceList$1 ++sun/security/jca/Providers ++sun/security/jca/ServiceId ++sun/security/provider/ByteArrayAccess ++sun/security/provider/DSA ++sun/security/provider/DSA$LegacyDSA ++sun/security/provider/DSA$SHA1withDSA ++sun/security/provider/DSAParameters ++sun/security/provider/DSAPublicKey ++sun/security/provider/DigestBase ++sun/security/provider/NativePRNG ++sun/security/provider/NativePRNG$1 ++sun/security/provider/NativePRNG$2 ++sun/security/provider/NativePRNG$Blocking ++sun/security/provider/NativePRNG$NonBlocking ++sun/security/provider/NativePRNG$RandomIO ++sun/security/provider/NativePRNG$Variant ++sun/security/provider/SHA ++sun/security/provider/Sun ++sun/security/provider/SunEntries ++sun/security/provider/SunEntries$1 ++sun/security/util/BitArray ++sun/security/util/ByteArrayLexOrder ++sun/security/util/Debug ++sun/security/util/DerEncoder ++sun/security/util/DerIndefLenConverter ++sun/security/util/DerInputBuffer ++sun/security/util/DerInputStream ++sun/security/util/DerOutputStream ++sun/security/util/DerValue ++sun/security/util/ManifestEntryVerifier ++sun/security/util/ObjectIdentifier ++sun/security/util/SignatureFileVerifier ++sun/security/x509/AlgorithmId ++sun/security/x509/X509Key ++sun/swing/DefaultLookup ++sun/swing/ImageIconUIResource ++sun/swing/JLightweightFrame ++sun/swing/MenuItemLayoutHelper ++sun/swing/MenuItemLayoutHelper$ColumnAlignment ++sun/swing/MenuItemLayoutHelper$LayoutResult ++sun/swing/MenuItemLayoutHelper$RectSize ++sun/swing/PrintColorUIResource ++sun/swing/StringUIClientPropertyKey ++sun/swing/SwingAccessor ++sun/swing/SwingAccessor$JTextComponentAccessor ++sun/swing/SwingLazyValue ++sun/swing/SwingLazyValue$1 ++sun/swing/SwingUtilities2 ++sun/swing/SwingUtilities2$2 ++sun/swing/SwingUtilities2$AATextInfo ++sun/swing/SwingUtilities2$LSBCacheEntry ++sun/swing/UIAction ++sun/swing/UIClientPropertyKey ++sun/swing/table/DefaultTableCellHeaderRenderer ++sun/swing/table/DefaultTableCellHeaderRenderer$EmptyIcon ++sun/text/ComposedCharIter ++sun/text/IntHashtable ++sun/text/UCompactIntArray ++sun/text/normalizer/CharTrie ++sun/text/normalizer/CharTrie$FriendAgent ++sun/text/normalizer/ICUBinary ++sun/text/normalizer/ICUBinary$Authenticate ++sun/text/normalizer/ICUData ++sun/text/normalizer/IntTrie ++sun/text/normalizer/NormalizerDataReader ++sun/text/normalizer/NormalizerImpl ++sun/text/normalizer/NormalizerImpl$AuxTrieImpl ++sun/text/normalizer/NormalizerImpl$DecomposeArgs ++sun/text/normalizer/NormalizerImpl$FCDTrieImpl ++sun/text/normalizer/NormalizerImpl$NormTrieImpl ++sun/text/normalizer/Trie ++sun/text/normalizer/Trie$DataManipulate ++sun/text/normalizer/UTF16 ++sun/text/normalizer/UnicodeMatcher ++sun/text/normalizer/UnicodeSet ++sun/text/resources/CollationData ++sun/text/resources/FormatData ++sun/text/resources/en/FormatData_en ++sun/text/resources/en/FormatData_en_US ++sun/util/CoreResourceBundleControl ++sun/util/PreHashedMap ++sun/util/ResourceBundleEnumeration ++sun/util/calendar/AbstractCalendar ++sun/util/calendar/BaseCalendar ++sun/util/calendar/BaseCalendar$Date ++sun/util/calendar/CalendarDate ++sun/util/calendar/CalendarSystem ++sun/util/calendar/CalendarUtils ++sun/util/calendar/Gregorian ++sun/util/calendar/Gregorian$Date ++sun/util/calendar/ZoneInfo ++sun/util/calendar/ZoneInfoFile ++sun/util/calendar/ZoneInfoFile$1 ++sun/util/calendar/ZoneInfoFile$Checksum ++sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule ++sun/util/locale/BaseLocale ++sun/util/locale/BaseLocale$Cache ++sun/util/locale/BaseLocale$Key ++sun/util/locale/LanguageTag ++sun/util/locale/LocaleObjectCache ++sun/util/locale/LocaleObjectCache$CacheEntry ++sun/util/locale/LocaleUtils ++sun/util/locale/provider/AuxLocaleProviderAdapter ++sun/util/locale/provider/AuxLocaleProviderAdapter$NullProvider ++sun/util/locale/provider/AvailableLanguageTags ++sun/util/locale/provider/CalendarDataProviderImpl ++sun/util/locale/provider/CalendarDataUtility ++sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter ++sun/util/locale/provider/CalendarProviderImpl ++sun/util/locale/provider/CollatorProviderImpl ++sun/util/locale/provider/CurrencyNameProviderImpl ++sun/util/locale/provider/DateFormatSymbolsProviderImpl ++sun/util/locale/provider/DecimalFormatSymbolsProviderImpl ++sun/util/locale/provider/JRELocaleProviderAdapter ++sun/util/locale/provider/JRELocaleProviderAdapter$1 ++sun/util/locale/provider/LocaleDataMetaInfo ++sun/util/locale/provider/LocaleProviderAdapter ++sun/util/locale/provider/LocaleProviderAdapter$1 ++sun/util/locale/provider/LocaleProviderAdapter$Type ++sun/util/locale/provider/LocaleResources ++sun/util/locale/provider/LocaleResources$ResourceReference ++sun/util/locale/provider/LocaleServiceProviderPool ++sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter ++sun/util/locale/provider/NumberFormatProviderImpl ++sun/util/locale/provider/ResourceBundleBasedAdapter ++sun/util/locale/provider/SPILocaleProviderAdapter ++sun/util/locale/provider/SPILocaleProviderAdapter$1 ++sun/util/locale/provider/TimeZoneNameProviderImpl ++sun/util/locale/provider/TimeZoneNameUtility ++sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter ++sun/util/logging/LoggingProxy ++sun/util/logging/LoggingSupport ++sun/util/logging/LoggingSupport$1 ++sun/util/logging/LoggingSupport$2 ++sun/util/logging/PlatformLogger ++sun/util/logging/PlatformLogger$1 ++sun/util/logging/PlatformLogger$DefaultLoggerProxy ++sun/util/logging/PlatformLogger$JavaLoggerProxy ++sun/util/logging/PlatformLogger$Level ++sun/util/logging/PlatformLogger$LoggerProxy ++sun/util/logging/resources/logging ++sun/util/resources/CalendarData ++sun/util/resources/CurrencyNames ++sun/util/resources/LocaleData ++sun/util/resources/LocaleData$1 ++sun/util/resources/LocaleData$LocaleDataResourceBundleControl ++sun/util/resources/LocaleNamesBundle ++sun/util/resources/OpenListResourceBundle ++sun/util/resources/ParallelListResourceBundle ++sun/util/resources/ParallelListResourceBundle$KeySet ++sun/util/resources/TimeZoneNames ++sun/util/resources/TimeZoneNamesBundle ++sun/util/resources/en/CalendarData_en ++sun/util/resources/en/CurrencyNames_en_US ++sun/util/resources/en/TimeZoneNames_en ++sun/util/spi/CalendarProvider ++# e4fe875988768cf5 +Index: b/jdk/make/Images.gmk +=================================================================== +--- a/jdk/make/Images.gmk ++++ b/jdk/make/Images.gmk +@@ -236,11 +236,11 @@ ifeq ($(PROFILE), ) + endif + + JDK_LIB_FILES := $(NOT_JRE_LIB_FILES) +-ifeq ($(OPENJDK_TARGET_OS), linux) ++ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd),) + JDK_LIB_FILES += jexec + endif + +-ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris),) # If Linux or Solaris ++ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd solaris),) # If Linux, BSD or Solaris + JDK_LIB_FILES += $(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX) \ + $(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX) + endif +@@ -383,7 +383,7 @@ ifneq ($(OPENJDK_TARGET_OS), windows) + # This variable is potentially overridden in the closed makefile. + MAN_SRC_BASEDIR ?= $(JDK_TOPDIR)/src + +- ifeq ($(OPENJDK_TARGET_OS), linux) ++ ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd),) + MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc + MAN1_SUBDIR = man + endif +@@ -447,7 +447,7 @@ ifneq ($(OPENJDK_TARGET_OS), windows) + $(install-file) + endif + +- ifeq ($(OPENJDK_TARGET_OS), linux) ++ ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd),) + $(JRE_IMAGE_DIR)/man/ja: + $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) + $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja +@@ -467,7 +467,7 @@ ifneq ($(OPENJDK_TARGET_OS), windows) + $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja + endif + +- ifeq ($(OPENJDK_TARGET_OS), linux) ++ ifneq ($(findstring $(OPENJDK_TARGET_OS), linux bsd),) + JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ + $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ + $(JRE_IMAGE_DIR)/man/ja +Index: b/jdk/make/mapfiles/libnio/mapfile-bsd +=================================================================== +--- /dev/null ++++ b/jdk/make/mapfiles/libnio/mapfile-bsd +@@ -0,0 +1,190 @@ ++# ++# Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. ++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++# ++# This code is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License version 2 only, as ++# published by the Free Software Foundation. Oracle designates this ++# particular file as subject to the "Classpath" exception as provided ++# by Oracle in the LICENSE file that accompanied this code. ++# ++# This code is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++# version 2 for more details (a copy is included in the LICENSE file that ++# accompanied this code). ++# ++# You should have received a copy of the GNU General Public License version ++# 2 along with this work; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++# ++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++# or visit www.oracle.com if you need additional information or have any ++# questions. ++# ++ ++SUNWprivate_1.1 { ++ global: ++ Java_java_nio_MappedByteBuffer_force0; ++ Java_java_nio_MappedByteBuffer_isLoaded0; ++ Java_java_nio_MappedByteBuffer_load0; ++ Java_sun_nio_ch_DatagramChannelImpl_disconnect0; ++ Java_sun_nio_ch_DatagramChannelImpl_initIDs; ++ Java_sun_nio_ch_DatagramChannelImpl_receive0; ++ Java_sun_nio_ch_DatagramChannelImpl_send0; ++ Java_sun_nio_ch_DatagramDispatcher_read0; ++ Java_sun_nio_ch_DatagramDispatcher_readv0; ++ Java_sun_nio_ch_DatagramDispatcher_write0; ++ Java_sun_nio_ch_DatagramDispatcher_writev0; ++ Java_sun_nio_ch_EPollArrayWrapper_epollCreate; ++ Java_sun_nio_ch_EPollArrayWrapper_epollCtl; ++ Java_sun_nio_ch_EPollArrayWrapper_epollWait; ++ Java_sun_nio_ch_EPollArrayWrapper_init; ++ Java_sun_nio_ch_EPollArrayWrapper_interrupt; ++ Java_sun_nio_ch_EPollArrayWrapper_offsetofData; ++ Java_sun_nio_ch_EPollArrayWrapper_sizeofEPollEvent; ++ Java_sun_nio_ch_EPoll_eventSize; ++ Java_sun_nio_ch_EPoll_eventsOffset; ++ Java_sun_nio_ch_EPoll_dataOffset; ++ Java_sun_nio_ch_EPoll_epollCreate; ++ Java_sun_nio_ch_EPoll_epollCtl; ++ Java_sun_nio_ch_EPoll_epollWait; ++ Java_sun_nio_ch_EPollPort_close0; ++ Java_sun_nio_ch_EPollPort_drain1; ++ Java_sun_nio_ch_EPollPort_interrupt; ++ Java_sun_nio_ch_EPollPort_socketpair; ++ Java_sun_nio_ch_FileChannelImpl_close0; ++ Java_sun_nio_ch_FileChannelImpl_initIDs; ++ Java_sun_nio_ch_FileChannelImpl_map0; ++ Java_sun_nio_ch_FileChannelImpl_position0; ++ Java_sun_nio_ch_FileChannelImpl_transferTo0; ++ Java_sun_nio_ch_FileChannelImpl_unmap0; ++ Java_sun_nio_ch_FileDispatcherImpl_close0; ++ Java_sun_nio_ch_FileDispatcherImpl_closeIntFD; ++ Java_sun_nio_ch_FileDispatcherImpl_force0; ++ Java_sun_nio_ch_FileDispatcherImpl_init; ++ Java_sun_nio_ch_FileDispatcherImpl_lock0; ++ Java_sun_nio_ch_FileDispatcherImpl_preClose0; ++ Java_sun_nio_ch_FileDispatcherImpl_pread0; ++ Java_sun_nio_ch_FileDispatcherImpl_pwrite0; ++ Java_sun_nio_ch_FileDispatcherImpl_read0; ++ Java_sun_nio_ch_FileDispatcherImpl_readv0; ++ Java_sun_nio_ch_FileDispatcherImpl_release0; ++ Java_sun_nio_ch_FileDispatcherImpl_size0; ++ Java_sun_nio_ch_FileDispatcherImpl_truncate0; ++ Java_sun_nio_ch_FileDispatcherImpl_write0; ++ Java_sun_nio_ch_FileDispatcherImpl_writev0; ++ Java_sun_nio_ch_FileKey_init; ++ Java_sun_nio_ch_FileKey_initIDs; ++ Java_sun_nio_ch_InheritedChannel_close0; ++ Java_sun_nio_ch_InheritedChannel_dup; ++ Java_sun_nio_ch_InheritedChannel_dup2; ++ Java_sun_nio_ch_InheritedChannel_open0; ++ Java_sun_nio_ch_InheritedChannel_peerAddress0; ++ Java_sun_nio_ch_InheritedChannel_peerPort0; ++ Java_sun_nio_ch_InheritedChannel_soType0; ++ Java_sun_nio_ch_IOUtil_configureBlocking; ++ Java_sun_nio_ch_IOUtil_drain; ++ Java_sun_nio_ch_IOUtil_fdVal; ++ Java_sun_nio_ch_IOUtil_fdLimit; ++ Java_sun_nio_ch_IOUtil_initIDs; ++ Java_sun_nio_ch_IOUtil_iovMax; ++ Java_sun_nio_ch_IOUtil_makePipe; ++ Java_sun_nio_ch_IOUtil_randomBytes; ++ Java_sun_nio_ch_IOUtil_setfdVal; ++ Java_sun_nio_ch_NativeThread_current; ++ Java_sun_nio_ch_NativeThread_init; ++ Java_sun_nio_ch_NativeThread_signal; ++ Java_sun_nio_ch_Net_canIPv6SocketJoinIPv4Group0; ++ Java_sun_nio_ch_Net_canJoin6WithIPv4Group0; ++ Java_sun_nio_ch_Net_socket0; ++ Java_sun_nio_ch_Net_bind0; ++ Java_sun_nio_ch_Net_connect0; ++ Java_sun_nio_ch_Net_listen; ++ Java_sun_nio_ch_Net_localPort; ++ Java_sun_nio_ch_Net_localInetAddress; ++ Java_sun_nio_ch_Net_getIntOption0; ++ Java_sun_nio_ch_Net_setIntOption0; ++ Java_sun_nio_ch_Net_initIDs; ++ Java_sun_nio_ch_Net_isIPv6Available0; ++ Java_sun_nio_ch_Net_joinOrDrop4; ++ Java_sun_nio_ch_Net_blockOrUnblock4; ++ Java_sun_nio_ch_Net_joinOrDrop6; ++ Java_sun_nio_ch_Net_blockOrUnblock6; ++ Java_sun_nio_ch_Net_setInterface4; ++ Java_sun_nio_ch_Net_getInterface4; ++ Java_sun_nio_ch_Net_setInterface6; ++ Java_sun_nio_ch_Net_getInterface6; ++ Java_sun_nio_ch_Net_shutdown; ++ Java_sun_nio_ch_Net_poll; ++ Java_sun_nio_ch_Net_pollinValue; ++ Java_sun_nio_ch_Net_polloutValue; ++ Java_sun_nio_ch_Net_pollerrValue; ++ Java_sun_nio_ch_Net_pollhupValue; ++ Java_sun_nio_ch_Net_pollnvalValue; ++ Java_sun_nio_ch_Net_pollconnValue; ++ Java_sun_nio_ch_Net_isExclusiveBindAvailable; ++ Java_sun_nio_ch_PollArrayWrapper_interrupt; ++ Java_sun_nio_ch_PollArrayWrapper_poll0; ++ Java_sun_nio_ch_ServerSocketChannelImpl_accept0; ++ Java_sun_nio_ch_ServerSocketChannelImpl_initIDs; ++ Java_sun_nio_ch_SocketChannelImpl_checkConnect; ++ Java_sun_nio_ch_SocketChannelImpl_sendOutOfBandData; ++ Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_accept0; ++ Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_initIDs; ++ Java_sun_nio_ch_UnixAsynchronousSocketChannelImpl_checkConnect; ++ Java_sun_nio_fs_GnomeFileTypeDetector_initializeGio; ++ Java_sun_nio_fs_GnomeFileTypeDetector_probeUsingGio; ++ Java_sun_nio_fs_GnomeFileTypeDetector_initializeGnomeVfs; ++ Java_sun_nio_fs_GnomeFileTypeDetector_probeUsingGnomeVfs; ++ Java_sun_nio_fs_UnixNativeDispatcher_init; ++ Java_sun_nio_fs_UnixNativeDispatcher_getcwd; ++ Java_sun_nio_fs_UnixNativeDispatcher_strerror; ++ Java_sun_nio_fs_UnixNativeDispatcher_dup; ++ Java_sun_nio_fs_UnixNativeDispatcher_access0; ++ Java_sun_nio_fs_UnixNativeDispatcher_stat0; ++ Java_sun_nio_fs_UnixNativeDispatcher_lstat0; ++ Java_sun_nio_fs_UnixNativeDispatcher_fstat; ++ Java_sun_nio_fs_UnixNativeDispatcher_fstatat0; ++ Java_sun_nio_fs_UnixNativeDispatcher_chmod0; ++ Java_sun_nio_fs_UnixNativeDispatcher_fchmod; ++ Java_sun_nio_fs_UnixNativeDispatcher_chown0; ++ Java_sun_nio_fs_UnixNativeDispatcher_lchown0; ++ Java_sun_nio_fs_UnixNativeDispatcher_fchown; ++ Java_sun_nio_fs_UnixNativeDispatcher_utimes0; ++ Java_sun_nio_fs_UnixNativeDispatcher_futimes; ++ Java_sun_nio_fs_UnixNativeDispatcher_open0; ++ Java_sun_nio_fs_UnixNativeDispatcher_openat0; ++ Java_sun_nio_fs_UnixNativeDispatcher_close; ++ Java_sun_nio_fs_UnixNativeDispatcher_read; ++ Java_sun_nio_fs_UnixNativeDispatcher_write; ++ Java_sun_nio_fs_UnixNativeDispatcher_fopen0; ++ Java_sun_nio_fs_UnixNativeDispatcher_fclose; ++ Java_sun_nio_fs_UnixNativeDispatcher_opendir0; ++ Java_sun_nio_fs_UnixNativeDispatcher_fdopendir; ++ Java_sun_nio_fs_UnixNativeDispatcher_readdir; ++ Java_sun_nio_fs_UnixNativeDispatcher_closedir; ++ Java_sun_nio_fs_UnixNativeDispatcher_link0; ++ Java_sun_nio_fs_UnixNativeDispatcher_unlink0; ++ Java_sun_nio_fs_UnixNativeDispatcher_unlinkat0; ++ Java_sun_nio_fs_UnixNativeDispatcher_rename0; ++ Java_sun_nio_fs_UnixNativeDispatcher_renameat0; ++ Java_sun_nio_fs_UnixNativeDispatcher_mkdir0; ++ Java_sun_nio_fs_UnixNativeDispatcher_rmdir0; ++ Java_sun_nio_fs_UnixNativeDispatcher_symlink0; ++ Java_sun_nio_fs_UnixNativeDispatcher_readlink0; ++ Java_sun_nio_fs_UnixNativeDispatcher_realpath0; ++ Java_sun_nio_fs_UnixNativeDispatcher_statvfs0; ++ Java_sun_nio_fs_UnixNativeDispatcher_pathconf0; ++ Java_sun_nio_fs_UnixNativeDispatcher_fpathconf; ++ Java_sun_nio_fs_UnixNativeDispatcher_mknod0; ++ Java_sun_nio_fs_UnixNativeDispatcher_getpwuid; ++ Java_sun_nio_fs_UnixNativeDispatcher_getgrgid; ++ Java_sun_nio_fs_UnixNativeDispatcher_getpwnam0; ++ Java_sun_nio_fs_UnixNativeDispatcher_getgrnam0; ++ Java_sun_nio_fs_UnixCopyFile_transfer; ++ handleSocketError; ++ ++ local: ++ *; ++}; +Index: b/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c +=================================================================== +--- a/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c ++++ b/jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c +@@ -45,8 +45,12 @@ + #define stat64 stat + #define flock64 flock + #define off64_t off_t ++#ifndef F_SETLKW64 + #define F_SETLKW64 F_SETLKW ++#endif ++#ifndef F_SETLK64 + #define F_SETLK64 F_SETLK ++#endif + + #define pread64 pread + #define pwrite64 pwrite +Index: b/jdk/make/lib/Awt2dLibraries.gmk +=================================================================== +--- a/jdk/make/lib/Awt2dLibraries.gmk ++++ b/jdk/make/lib/Awt2dLibraries.gmk +@@ -309,7 +309,7 @@ LIBAWT_FILES := \ + debug_trace.c \ + debug_util.c + +-ifneq (, $(filter $(OPENJDK_TARGET_OS), solaris linux aix)) ++ifneq (, $(filter $(OPENJDK_TARGET_OS), bsd solaris linux aix)) + LIBAWT_FILES += awt_LoadLibrary.c initIDs.c img_colors.c + endif + +@@ -478,7 +478,7 @@ $(eval $(call SetupNativeCompilation,BUI + 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 @@ $(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 -llcms2, \ ++ LDFLAGS_SUFFIX_bsd := -lm -lawt -ljava -ljvm -llcms2, \ + LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm,\ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ +@@ -854,13 +854,13 @@ ifeq ($(BUILD_HEADLESS), true) + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libawt_headless/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ +- LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ ++ LDFLAGS_bsd := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ + LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..) \ + -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) \ + -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \ + LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN)., \ + REORDER := $(LIBAWT_HEADLESS_REORDER), \ +- LDFLAGS_SUFFIX_linux := -ljvm -lawt -lm $(LIBDL) -ljava, \ ++ LDFLAGS_SUFFIX_bsd := -ljvm -lawt -lm $(LIBDL) -ljava, \ + LDFLAGS_SUFFIX_aix := -ljvm -lawt -ljava,\ + LDFLAGS_SUFFIX_solaris := $(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_headless, \ +@@ -937,7 +937,7 @@ $(eval $(call SetupNativeCompilation,BUI + LDFLAGS := $(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \ +- LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \ ++ LDFLAGS_SUFFIX_bsd := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \ + LDFLAGS_SUFFIX_solaris := -lawt -lawt_headless -lc $(LIBM) $(LIBCXX) -ljava -ljvm, \ + LDFLAGS_SUFFIX_aix := -lawt -lawt_headless $(LIBM) $(LIBCXX) -ljava -ljvm,\ + LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \ +@@ -1088,7 +1088,7 @@ else # OPENJDK_TARGET_OS not windows + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_solaris := -L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \ +- LDFLAGS_SUFFIX_linux := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \ ++ LDFLAGS_SUFFIX_bsd := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \ + LDFLAGS_SUFFIX_aix := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX),\ + LDFLAGS_SUFFIX_solaris := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender, \ + LDFLAGS_SUFFIX_macosx := -Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \ +@@ -1144,7 +1144,7 @@ ifndef OPENJDK + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libkcms/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ +- LDFLAGS_SUFFIX_linux := -lc -lpthread, \ ++ LDFLAGS_SUFFIX_bsd := -lc -lpthread, \ + LDFLAGS_SUFFIX_solaris := -lc, \ + LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib version.lib, \ + LDFLAGS_SUFFIX_posix := -lm -ljava -ljvm, \ +Index: b/jdk/src/share/lib/security/java.security-bsd +=================================================================== +--- /dev/null ++++ b/jdk/src/share/lib/security/java.security-bsd +@@ -0,0 +1,569 @@ ++# ++# This is the "master security properties file". ++# ++# An alternate java.security properties file may be specified ++# from the command line via the system property ++# ++# -Djava.security.properties=<URL> ++# ++# This properties file appends to the master security properties file. ++# If both properties files specify values for the same key, the value ++# from the command-line properties file is selected, as it is the last ++# one loaded. ++# ++# Also, if you specify ++# ++# -Djava.security.properties==<URL> (2 equals), ++# ++# then that properties file completely overrides the master security ++# properties file. ++# ++# To disable the ability to specify an additional properties file from ++# the command line, set the key security.overridePropertiesFile ++# to false in the master security properties file. It is set to true ++# by default. ++ ++# In this file, various security properties are set for use by ++# java.security classes. This is where users can statically register ++# Cryptography Package Providers ("providers" for short). The term ++# "provider" refers to a package or set of packages that supply a ++# concrete implementation of a subset of the cryptography aspects of ++# the Java Security API. A provider may, for example, implement one or ++# more digital signature algorithms or message digest algorithms. ++# ++# Each provider must implement a subclass of the Provider class. ++# To register a provider in this master security properties file, ++# specify the Provider subclass name and priority in the format ++# ++# security.provider.<n>=<className> ++# ++# This declares a provider, and specifies its preference ++# order n. The preference order is the order in which providers are ++# searched for requested algorithms (when no specific provider is ++# requested). The order is 1-based; 1 is the most preferred, followed ++# by 2, and so on. ++# ++# <className> must specify the subclass of the Provider class whose ++# constructor sets the values of various properties that are required ++# for the Java Security API to look up the algorithms or other ++# facilities implemented by the provider. ++# ++# There must be at least one provider specification in java.security. ++# There is a default provider that comes standard with the JDK. It ++# is called the "SUN" provider, and its Provider subclass ++# named Sun appears in the sun.security.provider package. Thus, the ++# "SUN" provider is registered via the following: ++# ++# security.provider.1=sun.security.provider.Sun ++# ++# (The number 1 is used for the default provider.) ++# ++# Note: Providers can be dynamically registered instead by calls to ++# either the addProvider or insertProviderAt method in the Security ++# class. ++ ++# ++# List of providers and their preference orders (see above): ++# ++security.provider.1=sun.security.provider.Sun ++security.provider.2=sun.security.rsa.SunRsaSign ++security.provider.3=sun.security.ec.SunEC ++security.provider.4=com.sun.net.ssl.internal.ssl.Provider ++security.provider.5=com.sun.crypto.provider.SunJCE ++security.provider.6=sun.security.jgss.SunProvider ++security.provider.7=com.sun.security.sasl.Provider ++security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI ++security.provider.9=sun.security.smartcardio.SunPCSC ++ ++# ++# Sun Provider SecureRandom seed source. ++# ++# Select the primary source of seed data for the "SHA1PRNG" and ++# "NativePRNG" SecureRandom implementations in the "Sun" provider. ++# (Other SecureRandom implementations might also use this property.) ++# ++# On Unix-like systems (for example, Solaris/Linux/MacOS), the ++# "NativePRNG" and "SHA1PRNG" implementations obtains seed data from ++# special device files such as file:/dev/random. ++# ++# On Windows systems, specifying the URLs "file:/dev/random" or ++# "file:/dev/urandom" will enable the native Microsoft CryptoAPI seeding ++# mechanism for SHA1PRNG. ++# ++# By default, an attempt is made to use the entropy gathering device ++# specified by the "securerandom.source" Security property. If an ++# exception occurs while accessing the specified URL: ++# ++# SHA1PRNG: ++# the traditional system/thread activity algorithm will be used. ++# ++# NativePRNG: ++# a default value of /dev/random will be used. If neither ++# are available, the implementation will be disabled. ++# "file" is the only currently supported protocol type. ++# ++# The entropy gathering device can also be specified with the System ++# property "java.security.egd". For example: ++# ++# % java -Djava.security.egd=file:/dev/random MainClass ++# ++# Specifying this System property will override the ++# "securerandom.source" Security property. ++# ++# In addition, if "file:/dev/random" or "file:/dev/urandom" is ++# specified, the "NativePRNG" implementation will be more preferred than ++# SHA1PRNG in the Sun provider. ++# ++securerandom.source=file:/dev/random ++ ++# ++# A list of known strong SecureRandom implementations. ++# ++# To help guide applications in selecting a suitable strong ++# java.security.SecureRandom implementation, Java distributions should ++# indicate a list of known strong implementations using the property. ++# ++# This is a comma-separated list of algorithm and/or algorithm:provider ++# entries. ++# ++securerandom.strongAlgorithms=NativePRNGBlocking:SUN ++ ++# ++# Class to instantiate as the javax.security.auth.login.Configuration ++# provider. ++# ++login.configuration.provider=sun.security.provider.ConfigFile ++ ++# ++# Default login configuration file ++# ++#login.config.url.1=file:${user.home}/.java.login.config ++ ++# ++# Class to instantiate as the system Policy. This is the name of the class ++# that will be used as the Policy object. ++# ++policy.provider=sun.security.provider.PolicyFile ++ ++# The default is to have a single system-wide policy file, ++# and a policy file in the user's home directory. ++policy.url.1=file:${java.home}/lib/security/java.policy ++policy.url.2=file:${user.home}/.java.policy ++ ++# whether or not we expand properties in the policy file ++# if this is set to false, properties (${...}) will not be expanded in policy ++# files. ++policy.expandProperties=true ++ ++# whether or not we allow an extra policy to be passed on the command line ++# with -Djava.security.policy=somefile. Comment out this line to disable ++# this feature. ++policy.allowSystemProperty=true ++ ++# whether or not we look into the IdentityScope for trusted Identities ++# when encountering a 1.1 signed JAR file. If the identity is found ++# and is trusted, we grant it AllPermission. ++policy.ignoreIdentityScope=false ++ ++# ++# Default keystore type. ++# ++keystore.type=jks ++ ++# ++# Controls compatibility mode for the JKS keystore type. ++# ++# When set to 'true', the JKS keystore type supports loading ++# keystore files in either JKS or PKCS12 format. When set to 'false' ++# it supports loading only JKS keystore files. ++# ++keystore.type.compat=true ++ ++# ++# List of comma-separated packages that start with or equal this string ++# will cause a security exception to be thrown when ++# passed to checkPackageAccess unless the ++# corresponding RuntimePermission ("accessClassInPackage."+package) has ++# been granted. ++package.access=sun.,\ ++ com.sun.xml.internal.,\ ++ com.sun.imageio.,\ ++ com.sun.istack.internal.,\ ++ com.sun.jmx.,\ ++ com.sun.media.sound.,\ ++ com.sun.naming.internal.,\ ++ com.sun.proxy.,\ ++ com.sun.corba.se.,\ ++ com.sun.org.apache.bcel.internal.,\ ++ com.sun.org.apache.regexp.internal.,\ ++ com.sun.org.apache.xerces.internal.,\ ++ com.sun.org.apache.xpath.internal.,\ ++ com.sun.org.apache.xalan.internal.extensions.,\ ++ com.sun.org.apache.xalan.internal.lib.,\ ++ com.sun.org.apache.xalan.internal.res.,\ ++ com.sun.org.apache.xalan.internal.templates.,\ ++ com.sun.org.apache.xalan.internal.utils.,\ ++ com.sun.org.apache.xalan.internal.xslt.,\ ++ com.sun.org.apache.xalan.internal.xsltc.cmdline.,\ ++ com.sun.org.apache.xalan.internal.xsltc.compiler.,\ ++ com.sun.org.apache.xalan.internal.xsltc.trax.,\ ++ com.sun.org.apache.xalan.internal.xsltc.util.,\ ++ com.sun.org.apache.xml.internal.res.,\ ++ com.sun.org.apache.xml.internal.security.,\ ++ com.sun.org.apache.xml.internal.serializer.utils.,\ ++ com.sun.org.apache.xml.internal.utils.,\ ++ com.sun.org.glassfish.,\ ++ com.oracle.xmlns.internal.,\ ++ com.oracle.webservices.internal.,\ ++ oracle.jrockit.jfr.,\ ++ org.jcp.xml.dsig.internal.,\ ++ jdk.internal.,\ ++ jdk.nashorn.internal.,\ ++ jdk.nashorn.tools.,\ ++ com.sun.activation.registries. ++ ++# ++# List of comma-separated packages that start with or equal this string ++# will cause a security exception to be thrown when ++# passed to checkPackageDefinition unless the ++# corresponding RuntimePermission ("defineClassInPackage."+package) has ++# been granted. ++# ++# by default, none of the class loaders supplied with the JDK call ++# checkPackageDefinition. ++# ++package.definition=sun.,\ ++ com.sun.xml.internal.,\ ++ com.sun.imageio.,\ ++ com.sun.istack.internal.,\ ++ com.sun.jmx.,\ ++ com.sun.media.sound.,\ ++ com.sun.naming.internal.,\ ++ com.sun.proxy.,\ ++ com.sun.corba.se.,\ ++ com.sun.org.apache.bcel.internal.,\ ++ com.sun.org.apache.regexp.internal.,\ ++ com.sun.org.apache.xerces.internal.,\ ++ com.sun.org.apache.xpath.internal.,\ ++ com.sun.org.apache.xalan.internal.extensions.,\ ++ com.sun.org.apache.xalan.internal.lib.,\ ++ com.sun.org.apache.xalan.internal.res.,\ ++ com.sun.org.apache.xalan.internal.templates.,\ ++ com.sun.org.apache.xalan.internal.utils.,\ ++ com.sun.org.apache.xalan.internal.xslt.,\ ++ com.sun.org.apache.xalan.internal.xsltc.cmdline.,\ ++ com.sun.org.apache.xalan.internal.xsltc.compiler.,\ ++ com.sun.org.apache.xalan.internal.xsltc.trax.,\ ++ com.sun.org.apache.xalan.internal.xsltc.util.,\ ++ com.sun.org.apache.xml.internal.res.,\ ++ com.sun.org.apache.xml.internal.security.,\ ++ com.sun.org.apache.xml.internal.serializer.utils.,\ ++ com.sun.org.apache.xml.internal.utils.,\ ++ com.sun.org.glassfish.,\ ++ com.oracle.xmlns.internal.,\ ++ com.oracle.webservices.internal.,\ ++ oracle.jrockit.jfr.,\ ++ org.jcp.xml.dsig.internal.,\ ++ jdk.internal.,\ ++ jdk.nashorn.internal.,\ ++ jdk.nashorn.tools.,\ ++ com.sun.activation.registries. ++ ++# ++# Determines whether this properties file can be appended to ++# or overridden on the command line via -Djava.security.properties ++# ++security.overridePropertiesFile=true ++ ++# ++# Determines the default key and trust manager factory algorithms for ++# the javax.net.ssl package. ++# ++ssl.KeyManagerFactory.algorithm=SunX509 ++ssl.TrustManagerFactory.algorithm=PKIX ++ ++# ++# The Java-level namelookup cache policy for successful lookups: ++# ++# any negative value: caching forever ++# any positive value: the number of seconds to cache an address for ++# zero: do not cache ++# ++# default value is forever (FOREVER). For security reasons, this ++# caching is made forever when a security manager is set. When a security ++# manager is not set, the default behavior in this implementation ++# is to cache for 30 seconds. ++# ++# NOTE: setting this to anything other than the default value can have ++# serious security implications. Do not set it unless ++# you are sure you are not exposed to DNS spoofing attack. ++# ++#networkaddress.cache.ttl=-1 ++ ++# The Java-level namelookup cache policy for failed lookups: ++# ++# any negative value: cache forever ++# any positive value: the number of seconds to cache negative lookup results ++# zero: do not cache ++# ++# In some Microsoft Windows networking environments that employ ++# the WINS name service in addition to DNS, name service lookups ++# that fail may take a noticeably long time to return (approx. 5 seconds). ++# For this reason the default caching policy is to maintain these ++# results for 10 seconds. ++# ++# ++networkaddress.cache.negative.ttl=10 ++ ++# ++# Properties to configure OCSP for certificate revocation checking ++# ++ ++# Enable OCSP ++# ++# By default, OCSP is not used for certificate revocation checking. ++# This property enables the use of OCSP when set to the value "true". ++# ++# NOTE: SocketPermission is required to connect to an OCSP responder. ++# ++# Example, ++# ocsp.enable=true ++ ++# ++# Location of the OCSP responder ++# ++# By default, the location of the OCSP responder is determined implicitly ++# from the certificate being validated. This property explicitly specifies ++# the location of the OCSP responder. The property is used when the ++# Authority Information Access extension (defined in RFC 3280) is absent ++# from the certificate or when it requires overriding. ++# ++# Example, ++# ocsp.responderURL=http://ocsp.example.net:80 ++ ++# ++# Subject name of the OCSP responder's certificate ++# ++# By default, the certificate of the OCSP responder is that of the issuer ++# of the certificate being validated. This property identifies the certificate ++# of the OCSP responder when the default does not apply. Its value is a string ++# distinguished name (defined in RFC 2253) which identifies a certificate in ++# the set of certificates supplied during cert path validation. In cases where ++# the subject name alone is not sufficient to uniquely identify the certificate ++# then both the "ocsp.responderCertIssuerName" and ++# "ocsp.responderCertSerialNumber" properties must be used instead. When this ++# property is set then those two properties are ignored. ++# ++# Example, ++# ocsp.responderCertSubjectName="CN=OCSP Responder, O=XYZ Corp" ++ ++# ++# Issuer name of the OCSP responder's certificate ++# ++# By default, the certificate of the OCSP responder is that of the issuer ++# of the certificate being validated. This property identifies the certificate ++# of the OCSP responder when the default does not apply. Its value is a string ++# distinguished name (defined in RFC 2253) which identifies a certificate in ++# the set of certificates supplied during cert path validation. When this ++# property is set then the "ocsp.responderCertSerialNumber" property must also ++# be set. When the "ocsp.responderCertSubjectName" property is set then this ++# property is ignored. ++# ++# Example, ++# ocsp.responderCertIssuerName="CN=Enterprise CA, O=XYZ Corp" ++ ++# ++# Serial number of the OCSP responder's certificate ++# ++# By default, the certificate of the OCSP responder is that of the issuer ++# of the certificate being validated. This property identifies the certificate ++# of the OCSP responder when the default does not apply. Its value is a string ++# of hexadecimal digits (colon or space separators may be present) which ++# identifies a certificate in the set of certificates supplied during cert path ++# validation. When this property is set then the "ocsp.responderCertIssuerName" ++# property must also be set. When the "ocsp.responderCertSubjectName" property ++# is set then this property is ignored. ++# ++# Example, ++# ocsp.responderCertSerialNumber=2A:FF:00 ++ ++# ++# Policy for failed Kerberos KDC lookups: ++# ++# When a KDC is unavailable (network error, service failure, etc), it is ++# put inside a blacklist and accessed less often for future requests. The ++# value (case-insensitive) for this policy can be: ++# ++# tryLast ++# KDCs in the blacklist are always tried after those not on the list. ++# ++# tryLess[:max_retries,timeout] ++# KDCs in the blacklist are still tried by their order in the configuration, ++# but with smaller max_retries and timeout values. max_retries and timeout ++# are optional numerical parameters (default 1 and 5000, which means once ++# and 5 seconds). Please notes that if any of the values defined here is ++# more than what is defined in krb5.conf, it will be ignored. ++# ++# Whenever a KDC is detected as available, it is removed from the blacklist. ++# The blacklist is reset when krb5.conf is reloaded. You can add ++# refreshKrb5Config=true to a JAAS configuration file so that krb5.conf is ++# reloaded whenever a JAAS authentication is attempted. ++# ++# Example, ++# krb5.kdc.bad.policy = tryLast ++# krb5.kdc.bad.policy = tryLess:2,2000 ++krb5.kdc.bad.policy = tryLast ++ ++# Algorithm restrictions for certification path (CertPath) processing ++# ++# In some environments, certain algorithms or key lengths may be undesirable ++# for certification path building and validation. For example, "MD2" is ++# generally no longer considered to be a secure hash algorithm. This section ++# describes the mechanism for disabling algorithms based on algorithm name ++# and/or key length. This includes algorithms used in certificates, as well ++# as revocation information such as CRLs and signed OCSP Responses. ++# ++# The syntax of the disabled algorithm string is described as this Java ++# BNF-style: ++# DisabledAlgorithms: ++# " DisabledAlgorithm { , DisabledAlgorithm } " ++# ++# DisabledAlgorithm: ++# AlgorithmName [Constraint] ++# ++# AlgorithmName: ++# (see below) ++# ++# Constraint: ++# KeySizeConstraint ++# ++# KeySizeConstraint: ++# keySize Operator DecimalInteger ++# ++# Operator: ++# <= | < | == | != | >= | > ++# ++# DecimalInteger: ++# DecimalDigits ++# ++# DecimalDigits: ++# DecimalDigit {DecimalDigit} ++# ++# DecimalDigit: one of ++# 1 2 3 4 5 6 7 8 9 0 ++# ++# The "AlgorithmName" is the standard algorithm name of the disabled ++# algorithm. See "Java Cryptography Architecture Standard Algorithm Name ++# Documentation" for information about Standard Algorithm Names. Matching ++# is performed using a case-insensitive sub-element matching rule. (For ++# example, in "SHA1withECDSA" the sub-elements are "SHA1" for hashing and ++# "ECDSA" for signatures.) If the assertion "AlgorithmName" is a ++# sub-element of the certificate algorithm name, the algorithm will be ++# rejected during certification path building and validation. For example, ++# the assertion algorithm name "DSA" will disable all certificate algorithms ++# that rely on DSA, such as NONEwithDSA, SHA1withDSA. However, the assertion ++# will not disable algorithms related to "ECDSA". ++# ++# A "Constraint" provides further guidance for the algorithm being specified. ++# The "KeySizeConstraint" requires a key of a valid size range if the ++# "AlgorithmName" is of a key algorithm. The "DecimalInteger" indicates the ++# key size specified in number of bits. For example, "RSA keySize <= 1024" ++# indicates that any RSA key with key size less than or equal to 1024 bits ++# should be disabled, and "RSA keySize < 1024, RSA keySize > 2048" indicates ++# that any RSA key with key size less than 1024 or greater than 2048 should ++# be disabled. Note that the "KeySizeConstraint" only makes sense to key ++# algorithms. ++# ++# Note: This property is currently used by Oracle's PKIX implementation. It ++# is not guaranteed to be examined and used by other implementations. ++# ++# Example: ++# jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048 ++# ++# ++jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024 ++ ++# Algorithm restrictions for Secure Socket Layer/Transport Layer Security ++# (SSL/TLS) processing ++# ++# In some environments, certain algorithms or key lengths may be undesirable ++# when using SSL/TLS. This section describes the mechanism for disabling ++# algorithms during SSL/TLS security parameters negotiation, including ++# protocol version negotiation, cipher suites selection, peer authentication ++# and key exchange mechanisms. ++# ++# Disabled algorithms will not be negotiated for SSL/TLS connections, even ++# if they are enabled explicitly in an application. ++# ++# For PKI-based peer authentication and key exchange mechanisms, this list ++# of disabled algorithms will also be checked during certification path ++# building and validation, including algorithms used in certificates, as ++# well as revocation information such as CRLs and signed OCSP Responses. ++# This is in addition to the jdk.certpath.disabledAlgorithms property above. ++# ++# See the specification of "jdk.certpath.disabledAlgorithms" for the ++# syntax of the disabled algorithm string. ++# ++# Note: This property is currently used by Oracle's JSSE implementation. ++# It is not guaranteed to be examined and used by other implementations. ++# ++# Example: ++# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048 ++jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 768 ++ ++# Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS) ++# processing in JSSE implementation. ++# ++# In some environments, a certain algorithm may be undesirable but it ++# cannot be disabled because of its use in legacy applications. Legacy ++# algorithms may still be supported, but applications should not use them ++# as the security strength of legacy algorithms are usually not strong enough ++# in practice. ++# ++# During SSL/TLS security parameters negotiation, legacy algorithms will ++# not be negotiated unless there are no other candidates. ++# ++# The syntax of the disabled algorithm string is described as this Java ++# BNF-style: ++# LegacyAlgorithms: ++# " LegacyAlgorithm { , LegacyAlgorithm } " ++# ++# LegacyAlgorithm: ++# AlgorithmName (standard JSSE algorithm name) ++# ++# See the specification of security property "jdk.certpath.disabledAlgorithms" ++# for the syntax and description of the "AlgorithmName" notation. ++# ++# Per SSL/TLS specifications, cipher suites have the form: ++# SSL_KeyExchangeAlg_WITH_CipherAlg_MacAlg ++# or ++# TLS_KeyExchangeAlg_WITH_CipherAlg_MacAlg ++# ++# For example, the cipher suite TLS_RSA_WITH_AES_128_CBC_SHA uses RSA as the ++# key exchange algorithm, AES_128_CBC (128 bits AES cipher algorithm in CBC ++# mode) as the cipher (encryption) algorithm, and SHA-1 as the message digest ++# algorithm for HMAC. ++# ++# The LegacyAlgorithm can be one of the following standard algorithm names: ++# 1. JSSE cipher suite name, e.g., TLS_RSA_WITH_AES_128_CBC_SHA ++# 2. JSSE key exchange algorithm name, e.g., RSA ++# 3. JSSE cipher (encryption) algorithm name, e.g., AES_128_CBC ++# 4. JSSE message digest algorithm name, e.g., SHA ++# ++# See SSL/TLS specifications and "Java Cryptography Architecture Standard ++# Algorithm Name Documentation" for information about the algorithm names. ++# ++# Note: This property is currently used by Oracle's JSSE implementation. ++# It is not guaranteed to be examined and used by other implementations. ++# There is no guarantee the property will continue to exist or be of the ++# same syntax in future releases. ++# ++# Example: ++# jdk.tls.legacyAlgorithms=DH_anon, DES_CBC, SSL_RSA_WITH_RC4_128_MD5 ++# ++jdk.tls.legacyAlgorithms= \ ++ K_NULL, C_NULL, M_NULL, \ ++ DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_anon_EXPORT, DH_DSS_EXPORT, \ ++ DH_RSA_EXPORT, RSA_EXPORT, \ ++ DH_anon, ECDH_anon, \ ++ RC4_128, RC4_40, DES_CBC, DES40_CBC +Index: b/jdk/src/solaris/classes/java/lang/UNIXProcess.java +=================================================================== +--- a/jdk/src/solaris/classes/java/lang/UNIXProcess.java ++++ b/jdk/src/solaris/classes/java/lang/UNIXProcess.java +@@ -157,6 +157,7 @@ final class UNIXProcess extends Process + ); + + if (osName.equals("Linux")) { return LINUX; } ++ if (osName.contains("GNU")) { return BSD; } /* glibc-based, but not Linux */ + if (osName.contains("OS X")) { return BSD; } + if (osName.equals("SunOS")) { return SOLARIS; } + if (osName.equals("AIX")) { return AIX; } +Index: b/jdk/make/lib/NetworkingLibraries.gmk +=================================================================== +--- a/jdk/make/lib/NetworkingLibraries.gmk ++++ b/jdk/make/lib/NetworkingLibraries.gmk +@@ -42,7 +42,7 @@ ifneq ($(OPENJDK_TARGET_OS), linux) + LIBNET_EXCLUDE_FILES += linux_close.c + endif + +-ifneq ($(OPENJDK_TARGET_OS), macosx) ++ifeq (,$(findstring $(OPENJDK_TARGET_OS), bsd macosx)) + LIBNET_EXCLUDE_FILES += bsd_close.c + endif + +@@ -72,7 +72,7 @@ $(eval $(call SetupNativeCompilation,BUI + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_macosx := -ljvm -ljava, \ + LDFLAGS_SUFFIX_solaris := -ljvm -ljava -lnsl -lsocket $(LIBDL) -lc, \ +- LDFLAGS_SUFFIX_linux := $(LIBDL) -ljvm -lpthread -ljava, \ ++ LDFLAGS_SUFFIX_bsd := $(LIBDL) -ljvm -lpthread -ljava, \ + LDFLAGS_SUFFIX_aix := $(LIBDL) -ljvm -ljava,\ + LDFLAGS_SUFFIX_windows := ws2_32.lib jvm.lib secur32.lib iphlpapi.lib \ + delayimp.lib $(WIN_JAVA_LIB) advapi32.lib \ diff --git a/debian/patches/ld-symbolic-functions-aarch64.diff b/debian/patches/ld-symbolic-functions-aarch64.diff new file mode 100644 index 0000000..8f72868 --- /dev/null +++ b/debian/patches/ld-symbolic-functions-aarch64.diff @@ -0,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 --git a/debian/patches/ld-symbolic-functions-default.diff b/debian/patches/ld-symbolic-functions-default.diff new file mode 100644 index 0000000..58df79b --- /dev/null +++ b/debian/patches/ld-symbolic-functions-default.diff @@ -0,0 +1,21 @@ +--- a/hotspot/agent/src/os/linux/Makefile ++++ b/hotspot/agent/src/os/linux/Makefile +@@ -78,7 +78,7 @@ endif + 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 +--- a/hotspot/make/linux/makefiles/gcc.make ++++ b/hotspot/make/linux/makefiles/gcc.make +@@ -288,6 +288,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 --git a/debian/patches/libjpeg-fix.diff b/debian/patches/libjpeg-fix.diff new file mode 100644 index 0000000..1b11cae --- /dev/null +++ b/debian/patches/libjpeg-fix.diff @@ -0,0 +1,13 @@ +# DP: Fix libjavajpeg build using the system jpeg library. + +--- a/jdk/make/lib/Awt2dLibraries.gmk ++++ b/jdk/make/lib/Awt2dLibraries.gmk +@@ -739,7 +739,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 --git a/debian/patches/libpcsclite-dlopen.diff b/debian/patches/libpcsclite-dlopen.diff new file mode 100644 index 0000000..55c3d3f --- /dev/null +++ b/debian/patches/libpcsclite-dlopen.diff @@ -0,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 --git a/debian/patches/link-with-as-needed.diff b/debian/patches/link-with-as-needed.diff new file mode 100644 index 0000000..dab4507 --- /dev/null +++ b/debian/patches/link-with-as-needed.diff @@ -0,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 +@@ -427,7 +427,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-1.2.8 + UNPACKEXE_ZIPOBJS := $(JDK_OUTPUTDIR)/objs/libzip/zcrc32$(OBJ_SUFFIX) \ +@@ -483,9 +483,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 +@@ -760,10 +760,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 --git a/debian/patches/m68k-support.diff b/debian/patches/m68k-support.diff new file mode 100644 index 0000000..d357f1f --- /dev/null +++ b/debian/patches/m68k-support.diff @@ -0,0 +1,1255 @@ + +--- a/common/autoconf/generated-configure.sh ++++ b/common/autoconf/generated-configure.sh +@@ -6919,6 +6919,12 @@ test -n "$target_alias" && + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=big + ;; ++ m68k) ++ VAR_CPU=m68k ++ VAR_CPU_ARCH=m68k ++ VAR_CPU_BITS=32 ++ VAR_CPU_ENDIAN=big ++ ;; + *) + as_fn_error $? "unsupported cpu $build_cpu" "$LINENO" 5 + ;; +@@ -7062,6 +7068,12 @@ $as_echo "$OPENJDK_BUILD_OS-$OPENJDK_BUI + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=big + ;; ++ m68k) ++ VAR_CPU=m68k ++ VAR_CPU_ARCH=m68k ++ VAR_CPU_BITS=32 ++ VAR_CPU_ENDIAN=big ++ ;; + *) + as_fn_error $? "unsupported cpu $host_cpu" "$LINENO" 5 + ;; +--- a/common/autoconf/platform.m4 ++++ b/common/autoconf/platform.m4 +@@ -156,6 +156,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=big + ;; ++ m68k) ++ VAR_CPU=m68k ++ VAR_CPU_ARCH=m68k ++ VAR_CPU_BITS=32 ++ VAR_CPU_ENDIAN=big ++ ;; + *) + AC_MSG_ERROR([unsupported cpu $1]) + ;; +--- a/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp ++++ b/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp +@@ -38,7 +38,7 @@ + * __m68k_cmpxchg + * + * Atomically store newval in *ptr if *ptr is equal to oldval for user space. +- * Returns newval on success and oldval if no exchange happened. ++ * Returns oldval on success and *ptr if no exchange happened. + * This implementation is processor specific and works on + * 68020 68030 68040 and 68060. + * +@@ -62,40 +62,48 @@ static inline int __m68k_cmpxchg(int old + static inline int m68k_compare_and_swap(volatile int *ptr, + int oldval, + int newval) { ++ int prev = *ptr; + for (;;) { +- int prev = *ptr; ++ int newprev; + if (prev != oldval) + return prev; + +- if (__m68k_cmpxchg (prev, newval, ptr) == newval) ++ newprev = __m68k_cmpxchg (prev, newval, ptr); ++ if (newprev == prev) + // Success. + return prev; + + // We failed even though prev == oldval. Try again. ++ prev = newprev; + } + } + + /* Atomically add an int to memory. */ + static inline int m68k_add_and_fetch(volatile int *ptr, int add_value) { ++ int prev = *ptr; + for (;;) { + // Loop until success. ++ int newprev; + +- int prev = *ptr; +- +- if (__m68k_cmpxchg (prev, prev + add_value, ptr) == prev + add_value) ++ newprev = __m68k_cmpxchg (prev, prev + add_value, ptr); ++ if (newprev == prev) + return prev + add_value; ++ prev = newprev; + } + } + + /* Atomically write VALUE into `*PTR' and returns the previous + contents of `*PTR'. */ + static inline int m68k_lock_test_and_set(volatile int *ptr, int newval) { ++ int prev = *ptr; + for (;;) { + // Loop until success. +- int prev = *ptr; ++ int newprev; + +- if (__m68k_cmpxchg (prev, newval, ptr) == prev) ++ newprev = __m68k_cmpxchg (prev, newval, ptr); ++ if (newprev == prev) + return prev; ++ prev = newprev; + } + } + #endif // M68K +--- a/hotspot/src/share/vm/memory/allocation.hpp ++++ b/hotspot/src/share/vm/memory/allocation.hpp +@@ -191,7 +191,7 @@ template <MEMFLAGS F> class CHeapObj ALL + throw(); + void operator delete(void* p); + void operator delete [] (void* p); +-}; ++} __attribute__ ((aligned (4))); + + // Base class for objects allocated on the stack only. + // Calling new or delete will result in fatal error. +@@ -205,7 +205,7 @@ class StackObj ALLOCATION_SUPER_CLASS_SP + #endif + void operator delete(void* p); + void operator delete [](void* p); +-}; ++} __attribute__ ((aligned (4))); + + // Base class for objects used as value objects. + // Calling new or delete will result in fatal error. +@@ -231,7 +231,7 @@ class _ValueObj { + void operator delete(void* p); + void* operator new [](size_t size) throw(); + void operator delete [](void* p); +-}; ++} __attribute__ ((aligned (4))); + + + // Base class for objects stored in Metaspace. +@@ -611,7 +611,7 @@ class ResourceObj ALLOCATION_SUPER_CLASS + + void operator delete(void* p); + void operator delete [](void* p); +-}; ++} __attribute__ ((aligned (4))); + + // One of the following macros must be used when allocating an array + // or object to determine whether it should reside in the C heap on in +--- a/hotspot/src/share/vm/oops/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 +--- a/hotspot/src/share/vm/oops/constMethod.hpp ++++ b/hotspot/src/share/vm/oops/constMethod.hpp +@@ -224,6 +224,9 @@ private: + u2 _max_locals; // Number of local variables used by this method + u2 _size_of_parameters; // size of the parameter block (receiver + arguments) in words + u2 _orig_method_idnum; // Original unique identification number for the method ++#ifdef __m68k__ ++ u2 _padding; // pad the structure to a multiple of 32bit ++#endif + + // Constructor + ConstMethod(int byte_code_size, diff --git a/debian/patches/multiple-pkcs11-library-init.patch b/debian/patches/multiple-pkcs11-library-init.patch new file mode 100644 index 0000000..cb61703 --- /dev/null +++ b/debian/patches/multiple-pkcs11-library-init.patch @@ -0,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 +@@ -52,6 +52,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 +@@ -1000,6 +1001,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 --git a/debian/patches/no-pch-build.diff b/debian/patches/no-pch-build.diff new file mode 100644 index 0000000..0e1de32 --- /dev/null +++ b/debian/patches/no-pch-build.diff @@ -0,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 --git a/debian/patches/nonreparenting-wm.diff b/debian/patches/nonreparenting-wm.diff new file mode 100644 index 0000000..24ecc7e --- /dev/null +++ b/debian/patches/nonreparenting-wm.diff @@ -0,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 --git a/debian/patches/openjdk-ppc64el-S8170153.patch b/debian/patches/openjdk-ppc64el-S8170153.patch new file mode 100644 index 0000000..19eff26 --- /dev/null +++ b/debian/patches/openjdk-ppc64el-S8170153.patch @@ -0,0 +1,37 @@ + +# HG changeset patch +# User gromero +# Date 1481806659 18000 +# Node ID fddd627ea372a42b1adcd74790775ecbf0fcb88f +# Parent d15b51f1149bd1b7e87f4ec6a1bc5678c15275ef +8170153: PPC64/s390x/aarch64: Poor StrictMath performance due to non-optimized compilation +Reviewed-by: mdoerr, erikj, simonis, aph + +diff -r d15b51f1149b -r fddd627ea372 make/common/NativeCompilation.gmk +--- openjdk/make/common/NativeCompilation.gmk Tue Oct 25 08:38:21 2016 -0700 ++++ openjdk/make/common/NativeCompilation.gmk Thu Dec 15 07:57:39 2016 -0500 +@@ -297,17 +297,21 @@ + $$(shell $(RM) -f $$($1_SUPERFLUOUS_OBJS)) + endif + +- # Pickup extra OPENJDK_TARGET_OS_API and/or OPENJDK_TARGET_OS dependent variables for CFLAGS. +- $1_EXTRA_CFLAGS:=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_API)) $$($1_CFLAGS_$(OPENJDK_TARGET_OS)) ++ # Pickup extra OPENJDK_TARGET_OS_API, OPENJDK_TARGET_OS, and/or OPENJDK_TARGET_OS plus ++ # OPENJDK_TARGET_CPU pair dependent variables for CFLAGS. ++ $1_EXTRA_CFLAGS:=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_API)) $$($1_CFLAGS_$(OPENJDK_TARGET_OS)) \ ++ $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)) + ifneq ($(DEBUG_LEVEL),release) + # Pickup extra debug dependent variables for CFLAGS + $1_EXTRA_CFLAGS+=$$($1_CFLAGS_debug) + $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_API)_debug) + $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_debug) ++ $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_debug) + else + $1_EXTRA_CFLAGS+=$$($1_CFLAGS_release) + $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_API)_release) + $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_release) ++ $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_release) + endif + + # Pickup extra OPENJDK_TARGET_OS_API and/or OPENJDK_TARGET_OS dependent variables for CXXFLAGS. + diff --git a/debian/patches/pass-extra-flags.diff b/debian/patches/pass-extra-flags.diff new file mode 100644 index 0000000..6723f49 --- /dev/null +++ b/debian/patches/pass-extra-flags.diff @@ -0,0 +1,36 @@ +--- 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) + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO) + $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@ +--- a/hotspot/make/linux/makefiles/vm.make ++++ b/hotspot/make/linux/makefiles/vm.make +@@ -122,7 +122,8 @@ CFLAGS += $(CFLAGS/NOEX) + + # Extra flags from gnumake's invocation or environment + CFLAGS += $(EXTRA_CFLAGS) +-LFLAGS += $(EXTRA_CFLAGS) ++CXXFLAGS += $(EXTRA_CXXFLAGS) ++LFLAGS += $(EXTRA_LDFLAGS) + + # Don't set excutable bit on stack segment + # the same could be done by separate execstack command +--- a/hotspot/make/linux/makefiles/saproc.make ++++ b/hotspot/make/linux/makefiles/saproc.make +@@ -73,7 +73,7 @@ ALT_SAINCDIR=-I$(ALT_SASRCDIR) -DALT_SAS + else + ALT_SAINCDIR= + endif +-SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) ++SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS) + + SAARCH ?= $(BUILDARCH) + diff --git a/debian/patches/ppc64el.diff b/debian/patches/ppc64el.diff new file mode 100644 index 0000000..6080782 --- /dev/null +++ b/debian/patches/ppc64el.diff @@ -0,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 +@@ -4846,6 +4846,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. +@@ -4854,6 +4855,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 +@@ -4904,9 +4906,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 --git a/debian/patches/ppc64le-8036767.diff b/debian/patches/ppc64le-8036767.diff new file mode 100644 index 0000000..3a89293 --- /dev/null +++ b/debian/patches/ppc64le-8036767.diff @@ -0,0 +1,143 @@ +# DP: Common bits to configure ppc64le support. + +Index: b/common/autoconf/hotspot-spec.gmk.in +=================================================================== +--- 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@ +Index: b/common/autoconf/jdk-options.m4 +=================================================================== +--- a/common/autoconf/jdk-options.m4 ++++ b/common/autoconf/jdk-options.m4 +@@ -158,7 +158,7 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS + if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then + INCLUDE_SA=false + fi +- if test "x$VAR_CPU" = xppc64 ; then ++ if test "x$VAR_CPU" = xppc64 -o "x$VAR_CPU" = xppc64le ; then + INCLUDE_SA=false + fi + if test "x$OPENJDK_TARGET_CPU" = xaarch64; then +Index: b/common/autoconf/platform.m4 +=================================================================== +--- a/common/autoconf/platform.m4 ++++ b/common/autoconf/platform.m4 +@@ -128,7 +128,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 +Index: b/common/autoconf/toolchain.m4 +=================================================================== +--- 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 +Index: b/jdk/make/lib/SoundLibraries.gmk +=================================================================== +--- 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)"' +Index: b/jdk/src/share/native/com/sun/media/sound/SoundDefs.h +=================================================================== +--- a/jdk/src/share/native/com/sun/media/sound/SoundDefs.h ++++ b/jdk/src/share/native/com/sun/media/sound/SoundDefs.h +@@ -43,7 +43,9 @@ + #define X_ZERO 6 + #define X_ARM 7 + #define X_PPC 8 +-#define X_AARCH64 9 ++#define X_PPC64 9 ++#define X_PPC64LE 10 ++#define X_AARCH64 11 + + // ********************************** + // Make sure you set X_PLATFORM and X_ARCH defines correctly. +Index: b/jdk/src/solaris/bin/ppc64le/jvm.cfg +=================================================================== +--- /dev/null ++++ b/jdk/src/solaris/bin/ppc64le/jvm.cfg +@@ -0,0 +1,33 @@ ++# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. ++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++# ++# This code is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License version 2 only, as ++# published by the Free Software Foundation. Oracle designates this ++# particular file as subject to the "Classpath" exception as provided ++# by Oracle in the LICENSE file that accompanied this code. ++# ++# This code is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++# version 2 for more details (a copy is included in the LICENSE file that ++# accompanied this code). ++# ++# You should have received a copy of the GNU General Public License version ++# 2 along with this work; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++# ++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++# or visit www.oracle.com if you need additional information or have any ++# questions. ++# ++# List of JVMs that can be used as an option to java, javac, etc. ++# Order is important -- first in this list is the default JVM. ++# NOTE that this both this file and its format are UNSUPPORTED and ++# WILL GO AWAY in a future release. ++# ++# You may also select a JVM in an arbitrary location with the ++# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported ++# and may not be available in a future release. ++# ++-server KNOWN +Index: b/hotspot/make/defs.make +=================================================================== +--- 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 --git a/debian/patches/pr2775-cache_api.diff b/debian/patches/pr2775-cache_api.diff new file mode 100644 index 0000000..4d79d12 --- /dev/null +++ b/debian/patches/pr2775-cache_api.diff @@ -0,0 +1,54 @@ +commit 25b39703b2c3468f666f6175ff94e46526d402a7 +Author: Xerxes RÃ¥nby <xerxes@gudinna.com> +Date: Tue Dec 22 13:33:44 2015 +0100 + + OpenJDK 8: Add JDK8u JDK-8061651 API. IcedTea PR2775. + + Implement minimal JVM functionality to tell JDK8u that the JDK-8061651 API is unsupported by JamVM + + JVM_GetResourceLookupCacheURLs + JVM_GetResourceLookupCache + JVM_KnownToNotExist + + Signed-off-by: Xerxes RÃ¥nby <xerxes@gudinna.com> + +diff --git a/src/classlib/openjdk/jvm.c b/src/classlib/openjdk/jvm.c +index 971ac75..955621d 100644 +--- jamvm.old/jamvm/src/classlib/openjdk/jvm.c ++++ jamvm/jamvm/src/classlib/openjdk/jvm.c +@@ -666,6 +666,35 @@ void JVM_SetClassSigners(JNIEnv *env, jclass cls, jobjectArray signers) { + } + + ++/* JVM_GetResourceLookupCacheURLs ++ is part of the ++ JDK-8061651 JDK8u API ++*/ ++ ++jobjectArray JVM_GetResourceLookupCacheURLs(JNIEnv *env, jobject loader) { ++ return NULL; // tell OpenJDK 8 that the lookup cache API is unavailable ++} ++ ++/* JVM_GetResourceLookupCache ++ is unused however it is part of the ++ JDK-8061651 JDK8u API ++*/ ++ ++jintArray JVM_GetResourceLookupCache(JNIEnv *env, jobject loader, const char *resource_name) { ++ UNIMPLEMENTED("JVM_GetResourceLookupCache"); ++ return NULL; // tell OpenJDK 8 that the lookup cache is unavailable ++} ++ ++/* JVM_KnownToNotExist ++ is unused however it is part of the ++ JDK-8061651 JDK8u API ++*/ ++ ++jboolean JVM_KnownToNotExist(JNIEnv *env, jobject loader, const char *classname) { ++ UNIMPLEMENTED("JVM_KnownToNotExist"); ++ return JNI_FALSE; // tell OpenJDK 8 we don't know whether it exists or not ++} ++ + /* JVM_GetProtectionDomain */ + + jobject JVM_GetProtectionDomain(JNIEnv *env, jclass cls) { diff --git a/debian/patches/s390x-thread-stack-size.diff b/debian/patches/s390x-thread-stack-size.diff new file mode 100644 index 0000000..742c80c --- /dev/null +++ b/debian/patches/s390x-thread-stack-size.diff @@ -0,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 --git a/debian/patches/set-exec-name.diff b/debian/patches/set-exec-name.diff new file mode 100644 index 0000000..5c4d954 --- /dev/null +++ b/debian/patches/set-exec-name.diff @@ -0,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 --git a/debian/patches/shebang.diff b/debian/patches/shebang.diff new file mode 100644 index 0000000..fc08ba3 --- /dev/null +++ b/debian/patches/shebang.diff @@ -0,0 +1,7 @@ +--- a/jdk/src/share/sample/scripting/scriptpad/src/scripts/memory.sh ++++ b/jdk/src/share/sample/scripting/scriptpad/src/scripts/memory.sh +@@ -1,3 +1,4 @@ ++#!/bin/sh + # + # Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. + # diff --git a/debian/patches/sparc-fixes.diff b/debian/patches/sparc-fixes.diff new file mode 100644 index 0000000..2361107 --- /dev/null +++ b/debian/patches/sparc-fixes.diff @@ -0,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 --git a/debian/patches/sparc-stubgenerator.diff b/debian/patches/sparc-stubgenerator.diff new file mode 100644 index 0000000..4e0ea20 --- /dev/null +++ b/debian/patches/sparc-stubgenerator.diff @@ -0,0 +1,44 @@ +Author: Damien Raude-Morvan <drazzib@debian.org> +Description: Fix FTBFS on sparc on stubGenerator_sparc.cpp by using explicit class typedef. + +--- a/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp ++++ b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp +@@ -1055,7 +1055,7 @@ + Label& L_loop, bool use_prefetch, bool use_bis); + + void disjoint_copy_core(Register from, Register to, Register count, int log2_elem_size, +- int iter_size, CopyLoopFunc copy_loop_func) { ++ int iter_size, StubGenerator::CopyLoopFunc copy_loop_func) { + Label L_copy; + + assert(log2_elem_size <= 3, "the following code should be changed"); +@@ -1206,7 +1206,8 @@ + __ inc(from, 8); + __ sllx(O3, left_shift, O3); + +- disjoint_copy_core(from, to, count, log2_elem_size, 16, copy_16_bytes_shift_loop); ++ StubGenerator::CopyLoopFunc aFunction = &StubGenerator::copy_16_bytes_shift_loop; ++ disjoint_copy_core(from, to, count, log2_elem_size, 16, aFunction); + + __ inccc(count, count_dec>>1 ); // + 8 bytes + __ brx(Assembler::negative, true, Assembler::pn, L_copy_last_bytes); +@@ -2085,7 +2086,8 @@ + __ dec(count, 4); // The cmp at the beginning guaranty count >= 4 + __ sllx(O3, 32, O3); + +- disjoint_copy_core(from, to, count, 2, 16, copy_16_bytes_loop); ++ StubGenerator::CopyLoopFunc aFunction = &StubGenerator::copy_16_bytes_loop; ++ disjoint_copy_core(from, to, count, 2, 16, aFunction); + + __ br(Assembler::always, false, Assembler::pt, L_copy_4_bytes); + __ delayed()->inc(count, 4); // restore 'count' +@@ -2366,7 +2368,8 @@ + // count >= 0 (original count - 8) + __ mov(from, from64); + +- disjoint_copy_core(from64, to64, count, 3, 64, copy_64_bytes_loop); ++ StubGenerator::CopyLoopFunc aFunction = &StubGenerator::copy_64_bytes_loop; ++ disjoint_copy_core(from64, to64, count, 3, 64, aFunction); + + // Restore O4(offset0), O5(offset8) + __ sub(from64, from, offset0); diff --git a/debian/patches/stack-direction.diff b/debian/patches/stack-direction.diff new file mode 100644 index 0000000..04deba3 --- /dev/null +++ b/debian/patches/stack-direction.diff @@ -0,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 --git a/debian/patches/system-lcms.diff b/debian/patches/system-lcms.diff new file mode 100644 index 0000000..993bf23 --- /dev/null +++ b/debian/patches/system-lcms.diff @@ -0,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 +@@ -666,6 +666,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 +@@ -667,8 +667,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, \ +@@ -687,19 +687,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 --git a/debian/patches/system-libjpeg.diff b/debian/patches/system-libjpeg.diff new file mode 100644 index 0000000..e487007 --- /dev/null +++ b/debian/patches/system-libjpeg.diff @@ -0,0 +1,361 @@ +# 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/generated-configure.sh ++++ b/common/autoconf/generated-configure.sh +@@ -1071,6 +1071,7 @@ enable_freetype_bundling + with_alsa + with_alsa_include + with_alsa_lib ++with_libjpeg + with_giflib + with_zlib + with_stdc__lib +@@ -1844,6 +1845,8 @@ Optional Packages: + headers under PATH/include) + --with-alsa-include specify directory for the alsa include files + --with-alsa-lib specify directory for the alsa library ++ --with-libjpeg use libjpeg from build system or OpenJDK source ++ (system, bundled) [bundled] + --with-giflib use giflib from build system or OpenJDK source + (system, bundled) [bundled] + --with-zlib use zlib from build system or OpenJDK source +@@ -7987,6 +7990,11 @@ $as_echo "$with_jvm_variants" >&6; } + JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'` + JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'` + ++ if test "x$JVM_VARIANT_CLIENT" = xtrue; then ++ if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then ++ as_fn_error $? "You cannot build a client JVM for a 64-bit machine." "$LINENO" 5 ++ fi ++ fi + if test "x$JVM_VARIANT_KERNEL" = xtrue; then + if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then + as_fn_error $? "You cannot build a kernel JVM for a 64-bit machine." "$LINENO" 5 +@@ -35239,10 +35247,43 @@ done + # Check for the jpeg library + # + +- USE_EXTERNAL_LIBJPEG=true +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ljpeg" >&5 +-$as_echo_n "checking for main in -ljpeg... " >&6; } +-if ${ac_cv_lib_jpeg_main+:} false; then : ++ ++# Check whether --with-libjpeg was given. ++if test "${with_libjpeg+set}" = set; then : ++ withval=$with_libjpeg; ++fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for which libjpeg to use" >&5 ++$as_echo_n "checking for which libjpeg to use... " >&6; } ++ ++ # 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 ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libjpeg}" >&5 ++$as_echo "${with_libjpeg}" >&6; } ++ ++ if test "x${with_libjpeg}" = "xbundled"; then ++ USE_EXTERNAL_LIBJPEG=false ++ elif test "x${with_libjpeg}" = "xsystem"; then ++ ac_fn_cxx_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default" ++if test "x$ac_cv_header_jpeglib_h" = xyes; then : ++ ++else ++ as_fn_error $? "--with-libjpeg=system specified, but jpeglib.h not found!" "$LINENO" 5 ++fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_CreateDecompress in -ljpeg" >&5 ++$as_echo_n "checking for jpeg_CreateDecompress in -ljpeg... " >&6; } ++if ${ac_cv_lib_jpeg_jpeg_CreateDecompress+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +@@ -35250,27 +35291,33 @@ LIBS="-ljpeg $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +- ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char jpeg_CreateDecompress (); + int + main () + { +-return main (); ++return jpeg_CreateDecompress (); + ; + return 0; + } + _ACEOF + if ac_fn_cxx_try_link "$LINENO"; then : +- ac_cv_lib_jpeg_main=yes ++ ac_cv_lib_jpeg_jpeg_CreateDecompress=yes + else +- ac_cv_lib_jpeg_main=no ++ ac_cv_lib_jpeg_jpeg_CreateDecompress=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_main" >&5 +-$as_echo "$ac_cv_lib_jpeg_main" >&6; } +-if test "x$ac_cv_lib_jpeg_main" = xyes; then : ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_CreateDecompress" >&5 ++$as_echo "$ac_cv_lib_jpeg_jpeg_CreateDecompress" >&6; } ++if test "x$ac_cv_lib_jpeg_jpeg_CreateDecompress" = xyes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBJPEG 1 + _ACEOF +@@ -35278,13 +35325,16 @@ _ACEOF + LIBS="-ljpeg $LIBS" + + else +- USE_EXTERNAL_LIBJPEG=false +- { $as_echo "$as_me:${as_lineno-$LINENO}: Will use jpeg decoder bundled with the OpenJDK source" >&5 +-$as_echo "$as_me: Will use jpeg decoder bundled with the OpenJDK source" >&6;} +- ++ as_fn_error $? "--with-libjpeg=system specified, but no libjpeg found" "$LINENO" 5 + fi + + ++ USE_EXTERNAL_LIBJPEG=true ++ else ++ as_fn_error $? "Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled'" "$LINENO" 5 ++ fi ++ ++ + + ############################################################################### + # +--- a/common/autoconf/libraries.m4 ++++ b/common/autoconf/libraries.m4 +@@ -595,11 +595,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 +@@ -703,21 +703,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(). +@@ -729,37 +732,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) + + ########################################################################################## + +@@ -1199,6 +1215,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 +@@ -1259,11 +1282,13 @@ ifndef BUILD_HEADLESS_ONLY + EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \ ++ CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \ ++ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ +- LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS), \ ++ LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \ ++ $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ +--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java ++++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java +@@ -89,7 +89,7 @@ public class JPEGImageReader extends Ima + java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction<Void>() { + public Void run() { +- System.loadLibrary("jpeg"); ++ System.loadLibrary("javajpeg"); + return null; + } + }); +--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java ++++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java +@@ -177,7 +177,7 @@ public class JPEGImageWriter extends Ima + java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction<Void>() { + public Void run() { +- System.loadLibrary("jpeg"); ++ System.loadLibrary("javajpeg"); + return null; + } + }); +--- a/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java ++++ b/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java +@@ -56,7 +56,7 @@ public class JPEGImageDecoder extends Im + java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction<Void>() { + public Void run() { +- System.loadLibrary("jpeg"); ++ System.loadLibrary("javajpeg"); + return null; + } + }); +--- a/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c ++++ b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c +@@ -51,7 +51,7 @@ + + /* headers from the JPEG library */ + #include <jpeglib.h> +-#include "jerror.h" ++#include <jerror.h> + + #undef MAX + #define MAX(a,b) ((a) > (b) ? (a) : (b)) diff --git a/debian/patches/system-libpng.diff b/debian/patches/system-libpng.diff new file mode 100644 index 0000000..1c3c8cb --- /dev/null +++ b/debian/patches/system-libpng.diff @@ -0,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 +@@ -666,6 +666,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 +@@ -567,6 +567,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 +@@ -1205,7 +1205,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) +@@ -1222,6 +1221,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 +@@ -1283,12 +1289,12 @@ ifndef BUILD_HEADLESS_ONLY + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \ +- $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \ ++ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(LIBPNG_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \ +- $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \ ++ $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS) $(LIBPNG_LDFLAGS), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ +--- a/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c ++++ b/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c +@@ -25,8 +25,7 @@ + + #include "splashscreen_impl.h" + +-#include "../libpng/png.h" +- ++#include <png.h> + #include <setjmp.h> + + #define SIG_BYTES 8 diff --git a/debian/patches/system-pcsclite.diff b/debian/patches/system-pcsclite.diff new file mode 100644 index 0000000..cec60ba --- /dev/null +++ b/debian/patches/system-pcsclite.diff @@ -0,0 +1,181 @@ +--- a/common/autoconf/libraries.m4 ++++ b/common/autoconf/libraries.m4 +@@ -747,6 +747,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 +@@ -569,6 +569,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 --git a/debian/patches/workaround_expand_exec_shield_cs_limit.diff b/debian/patches/workaround_expand_exec_shield_cs_limit.diff new file mode 100644 index 0000000..5d5c665 --- /dev/null +++ b/debian/patches/workaround_expand_exec_shield_cs_limit.diff @@ -0,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(); + /* + * Take the highest VA the OS will give us and exec +--- a/hotspot/src/os/linux/vm/os_linux.cpp ++++ b/hotspot/src/os/linux/vm/os_linux.cpp +@@ -4933,7 +4933,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 --git a/debian/patches/zero-architectures.diff b/debian/patches/zero-architectures.diff new file mode 100644 index 0000000..4e6da6c --- /dev/null +++ b/debian/patches/zero-architectures.diff @@ -0,0 +1,102 @@ +# 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 +@@ -60,6 +66,48 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU + 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 +@@ -78,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 +@@ -377,6 +431,11 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS], + + # ZERO_ARCHDEF is used to enable architecture-specific code + case "${OPENJDK_TARGET_CPU}" in ++ alpha*) ZERO_ARCHDEF=ALPHA ;; ++ 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/toolchain.m4 ++++ b/common/autoconf/toolchain.m4 +@@ -1354,6 +1354,8 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_ + *) + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + esac ++ # use the default for the package builds ++ ZERO_ARCHFLAG="" + TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$ZERO_ARCHFLAG], [], [ZERO_ARCHFLAG=""]) + AC_SUBST(ZERO_ARCHFLAG) + diff --git a/debian/patches/zero-fpu-control-is-noop.diff b/debian/patches/zero-fpu-control-is-noop.diff new file mode 100644 index 0000000..c65eb57 --- /dev/null +++ b/debian/patches/zero-fpu-control-is-noop.diff @@ -0,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 <drazzib@debian.org> +Last-Update: 2011-08-02 +Forwarded: http://mail.openjdk.java.net/pipermail/zero-dev/2011-August/000398.html +--- a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp ++++ b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp +@@ -259,11 +259,12 @@ void os::Linux::init_thread_fpu_state(vo + } + + int os::Linux::get_fpu_control_word() { +- ShouldNotCallThis(); ++ // Nothing to do ++ return 0; + } + + void os::Linux::set_fpu_control_word(int fpu) { +- ShouldNotCallThis(); ++ // Nothing to do + } + + bool os::is_allocatable(size_t bytes) { diff --git a/debian/patches/zero-missing-headers.diff b/debian/patches/zero-missing-headers.diff new file mode 100644 index 0000000..49aada7 --- /dev/null +++ b/debian/patches/zero-missing-headers.diff @@ -0,0 +1,25 @@ +Description: at least in 7b143, building without the precompiled headers doesn't work. + patch attached. +Forwarded: http://mail.openjdk.java.net/pipermail/zero-dev/2011-July/000385.html + +--- a/hotspot/src/cpu/zero/vm/entry_zero.hpp ++++ b/hotspot/src/cpu/zero/vm/entry_zero.hpp +@@ -26,6 +26,8 @@ + #ifndef CPU_ZERO_VM_ENTRY_ZERO_HPP + #define CPU_ZERO_VM_ENTRY_ZERO_HPP + ++#include "interpreter/cppInterpreter.hpp" ++ + class ZeroEntry { + public: + ZeroEntry() { +--- a/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp ++++ b/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp +@@ -25,6 +25,7 @@ + + #include "precompiled.hpp" + #include "assembler_zero.inline.hpp" ++#include "entry_zero.hpp" + #include "memory/resourceArea.hpp" + #include "nativeInst_zero.hpp" + #include "oops/oop.inline.hpp" diff --git a/debian/patches/zero-opt.diff b/debian/patches/zero-opt.diff new file mode 100644 index 0000000..7d3d763 --- /dev/null +++ b/debian/patches/zero-opt.diff @@ -0,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 --git a/debian/patches/zero-sh.diff b/debian/patches/zero-sh.diff new file mode 100644 index 0000000..73c4b2f --- /dev/null +++ b/debian/patches/zero-sh.diff @@ -0,0 +1,29 @@ +# DP: Add support for sh + +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 +@@ -1897,7 +1897,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) +@@ -1928,9 +1929,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 --git a/debian/patches/zero-sparc.diff b/debian/patches/zero-sparc.diff new file mode 100644 index 0000000..96f4080 --- /dev/null +++ b/debian/patches/zero-sparc.diff @@ -0,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 --git a/debian/patches/zero-x32.diff b/debian/patches/zero-x32.diff new file mode 100644 index 0000000..4f46f1f --- /dev/null +++ b/debian/patches/zero-x32.diff @@ -0,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 +@@ -1911,7 +1911,7 @@ void * os::dll_load(const char *filename + + #if (defined IA32) + static Elf32_Half running_arch_code=EM_386; +- #elif (defined AMD64) ++ #elif (defined AMD64) || (defined X32) + static Elf32_Half running_arch_code=EM_X86_64; + #elif (defined IA64) + static Elf32_Half running_arch_code=EM_IA_64; +--- a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c ++++ b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c +@@ -41,7 +41,6 @@ + #endif + #ifdef __linux__ + #include <unistd.h> +-#include <sys/sysctl.h> + #include <sys/utsname.h> + #include <netinet/ip.h> + +--- a/jdk/src/solaris/native/java/net/PlainSocketImpl.c ++++ b/jdk/src/solaris/native/java/net/PlainSocketImpl.c +@@ -43,7 +43,6 @@ + #endif + #ifdef __linux__ + #include <unistd.h> +-#include <sys/sysctl.h> + #endif + + #include "jvm.h" +--- a/common/autoconf/platform.m4 ++++ b/common/autoconf/platform.m4 +@@ -31,10 +31,17 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU + # First argument is the cpu name from the trip/quad + case "$1" in + x86_64) +- VAR_CPU=x86_64 +- VAR_CPU_ARCH=x86 +- VAR_CPU_BITS=64 +- VAR_CPU_ENDIAN=little ++ if test "`dpkg-architecture -qDEB_HOST_ARCH`" = x32 ; then ++ VAR_CPU=x32 ++ VAR_CPU_ARCH=x86 ++ VAR_CPU_BITS=32 ++ VAR_CPU_ENDIAN=little ++ else ++ VAR_CPU=x86_64 ++ VAR_CPU_ARCH=x86 ++ VAR_CPU_BITS=64 ++ VAR_CPU_ENDIAN=little ++ fi + ;; + i?86) + VAR_CPU=x86 +@@ -446,7 +453,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 --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..3f11e3a --- /dev/null +++ b/debian/rules @@ -0,0 +1,2334 @@ +#!/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 + +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_archs = amd64 i386 arm64 ppc64 ppc64el sparc64 kfreebsd-amd64 kfreebsd-i386 +# 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 +jbuilddir = build-jamvm + +VENDOR = openjdk +Vendor = OpenJDK +TOP = usr/lib/jvm +origin = openjdk +basename = openjdk-$(shortver) +ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs))) + priority = $(if $(filter yes, $(is_default)),1081,1069) + vm_name = Hotspot JIT +else ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs))) + priority = $(if $(filter yes, $(is_default)),1075,1065) + vm_name = Hotspot Shark +else + priority = $(if $(filter yes, $(is_default)),1074,1063) + vm_name = Hotspot Zero +endif +jvmver = 1.8.0 +shortver = 8 +updatever := $(shell echo $(PKGVERSION) | sed -n 's/^$(shortver)u\([0-9]\+\).*/\1/p') +buildver := $(shell echo $(PKGVERSION) | sed -n 's/^$(shortver)[^-]*-\(b[0-9]\+\).*/\1/p') + +ifneq (,$(DEB_HOST_MULTIARCH)) + jdirname = java-$(shortver)-$(origin)-$(DEB_HOST_ARCH) + jdiralias = java-$(jvmver)-$(origin)-$(DEB_HOST_ARCH) + basedir = $(TOP)/$(jdirname) + commonbasedir = $(TOP)/java-$(shortver)-$(origin)-common + commonbasedir = $(basedir) + etcdir = etc/java-$(shortver)-$(origin) +else + jdirname = java-$(shortver)-$(origin) + jdiralias = java-$(jvmver)-$(origin) + basedir = $(TOP)/$(jdirname) + commonbasedir = $(TOP)/java-$(shortver)-$(origin) + etcdir = etc/$(jdirname) +endif +security = $(etcdir)/security +ifneq ($(bootcycle_build),yes) + jreimg = images/j2re-image + sdkimg = images/j2sdk-image + build_target = images +else + jreimg = bootcycle-build/images/j2re-image + sdkimg = bootcycle-build/images/j2sdk-image + build_target = bootcycle-images +endif + +# Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008) +COMMA=, +SPACE = $(EMPTY) $(EMPTY) +ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) + NJOBS = $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) +endif + +with_check = $(if $(findstring nocheck, $(DEB_BUILD_OPTIONS)),,yes) +ifneq (,$(filter $(DEB_HOST_ARCH), armel)) + with_check = disabled running check on $(DEB_HOST_ARCH) +endif + +with_docs = $(if $(findstring nodocs, $(DEB_BUILD_OPTIONS)),,yes) +ifneq (,$(findstring shark, $(PKGSOURCE))) + with_docs = disabled for shark +endif + +with_wgy_zenhai = $(if $(filter $(distrel),lenny),,yes) + +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 + +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 + +ifeq (,$(filter $(distrel),squeeze lucid sid stretch)) + jamvm_archs = amd64 armel armhf i386 powerpc kfreebsd-i386 kfreebsd-amd64 mips mipsel +endif +ifeq (,$(filter $(distrel),wheezy squeeze lucid)) + jamvm_defaults = +endif + +# disabled, hotspot updates tend to break it too often ... +jamvm_archs = + +altshark_archs = powerpc ppc64 ppc64el +# Shark build but just crash +altshark_archs = + +altzero_archs = $(filter-out sparc, $(hotspot_archs)) $(altshark_archs) + +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 +ifeq (,$(filter noaltjamvm, $(DEB_BUILD_OPTIONS))) + ifneq (,$(filter $(DEB_HOST_ARCH), $(jamvm_archs))) + alternate_vms += jamvm + 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 JamVM: Makefile.am +ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) +dpkg_buildflags_jamvm += DEB_CFLAGS_MAINT_STRIP="-O2" DEB_CXXFLAGS_MAINT_STRIP="-O2" +dpkg_buildflags_jamvm += DEB_CFLAGS_MAINT_APPEND="-O3" DEB_CXXFLAGS_MAINT_APPEND="-O3" +endif +dpkg_buildflags_jamvm += dpkg-buildflags +export EXTRA_CPPFLAGS_JAMVM := $(shell $(dpkg_buildflags_jamvm) --get CPPFLAGS) +export EXTRA_CFLAGS_JAMVM := $(shell $(dpkg_buildflags_jamvm) --get CFLAGS) +export EXTRA_CXXFLAGS_JAMVM := $(shell $(dpkg_buildflags_jamvm) --get CXXFLAGS) +export EXTRA_LDFLAGS_JAMVM := $(shell $(dpkg_buildflags_jamvm) --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),sid stretch)) + export CC = $(DEB_HOST_GNU_TYPE)-gcc-6 + export CXX = $(DEB_HOST_GNU_TYPE)-g++-6 +else + export CC = $(DEB_HOST_GNU_TYPE)-gcc-6 + export CXX = $(DEB_HOST_GNU_TYPE)-g++-6 +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 +with_tzdata = + +ifneq (,$(filter $(distrel),squeeze wheezy lucid precise)) + with_check = +else + bd_jtreg = jtreg, +endif + +on_buildd := $(shell [ -f /CurrentlyBuilding -o "$$LOGNAME" = buildd ] && echo yes) + +ifeq ($(derivative),Debian) + with_wm = $(notdir $(firstword $(wildcard /usr/bin/metacity /usr/bin/twm))) + ifneq (,$(findstring twm, $(with_wm))) + with_wm_args = -f $(CURDIR)/bin/jtreg.tmwrc + endif + bd_wm = twm | metacity, twm | dbus-x11, +else + with_wm = $(notdir $(firstword $(wildcard /usr/bin/metacity /usr/bin/twm))) + with_wm_args = + ifneq (,$(findstring twm, $(with_wm))) + with_wm_args = -f $(CURDIR)/bin/jtreg.tmwrc + endif + ifneq (,$(filter $(distrel),saucy raring quantal precise lucid)) + bd_wm = metacity | twm, dbus-x11, + else + bd_wm = twm | metacity, twm | dbus-x11, + endif +endif +ifeq ($(with_wm),metacity) + with_wm_prefix = dbus-launch --exit-with-session +endif + +ifeq (,$(filter $(distrel),squeeze wheezy lucid precise quantal raring saucy trusty)) + ifeq (,$(filter $(DEB_HOST_ARCH),sh4)) + 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 = \ + gcc6.diff \ + 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-4953367.patch \ + icedtea-override-redirect-compiz.patch \ + jdk-freetypeScaler-crash.diff \ + libpcsclite-dlopen.diff \ + nonreparenting-wm.diff \ + shebang.diff \ + zero-fpu-control-is-noop.diff \ + jexec.diff \ + default-jvm-cfg-default.diff \ + disable-doclint-by-default.diff \ + include-all-srcs.diff \ + pass-extra-flags.diff \ + hotspot-disable-werror.diff \ + dont-strip-images.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 \ + 8141491.diff \ + s390x-thread-stack-size.diff \ + jdk-getAccessibleValue.diff \ + compiler-flags.diff \ + openjdk-ppc64el-S8170153.patch \ + jdk-ppc64el-S8170153.patch \ + jdk-841269-filechooser.patch \ + 8164293.diff \ + jdk-ppc64el-S8165231.diff \ + +# 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 += \ + zero-missing-headers.diff \ + 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))) + COMMON_PATCHES += \ + ppc64le-8036767.diff \ + hotspot-powerpcspe.diff \ + zero-sh.diff +# FIXME zero-opt.diff +endif + +# FIXME needs an update: +# $(if $(with_wgy_zenhai),,fontconfig-arphic-uming.diff) \ + +# 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 + +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))) + DEFAULT_CONFIGURE_ARGS += --with-jvm-variants=server +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))) + ifeq (,$(filter $(DEB_HOST_ARCH),$(hotspot_aarch64_archs))) + DEFAULT_CONFIGURE_ARGS += --disable-precompiled-headers + endif +endif + +ifeq ($(with_check),yes) + COMMON_CONFIGURE_ARGS += --with-jtreg +endif + +COMMON_CONFIGURE_ARGS += \ + --with-milestone='fcs' \ + --with-user-release-suffix='$(PKGVERSION)' \ + --with-update-version=$(updatever) \ + --with-build-number=$(buildver) + +# --with-debug-level=fastdebug \ + +COMMON_CONFIGURE_ARGS += \ + --with-debug-level=release \ + --disable-debug-symbols \ + --disable-zip-debug-info \ + --enable-unlimited-crypto \ + --with-zlib=system \ + --with-giflib=system \ + --with-libpng=system \ + --with-libjpeg=system \ + --with-lcms=system \ + --with-libpcsclite=system \ + --with-stdc++lib=dynamic + +ifneq (,$(NJOBS)) + COMMON_CONFIGURE_ARGS += --with-num-cores=$(NJOBS) +endif + +# FIXME: upstream says the extra flags are not designed for general purpose ... +# http://mail.openjdk.java.net/pipermail/jdk8u-dev/2014-July/001389.html + +# FIXME: demos fail to build with these ... +# FIXME: zero ftbfs without -fpermissive +#src/cpu/zero/vm/cppInterpreter_zero.cpp:732:30: error: invalid conversion from 'intptr_t {aka long int}' to 'const void*' [-fpermissive] +# object = (oop) locals[0]; +# ^ + +#COMMON_CONFIGURE_ARGS += \ + --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \ + --with-extra-cxxflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CXXFLAGS_HS)' \ + --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)' + +ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs))) + DEFAULT_CONFIGURE_ARGS += \ + --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \ + --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)' +else + DEFAULT_CONFIGURE_ARGS += \ + --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \ + --with-extra-cxxflags='-fpermissive' \ + --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)' +endif + +ZERO_CONFIGURE_ARGS += \ + --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \ + --with-extra-cxxflags='-fpermissive' \ + --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)' + +ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH)) + COMMON_CONFIGURE_ARGS += \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --host=$(DEB_HOST_GNU_TYPE) \ + --target=$(DEB_HOST_GNU_TYPE) \ + BUILD_CC=$(subst $(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE),$(CC)) \ + BUILD_LD=$(subst $(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE),$(CC)) \ + BUILD_CXX=$(subst $(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE),$(CXX)) \ + +endif + +# (most) jre and jdk tools handled by the alternatives system. +# dups in heimdal-clients, krb5-user: kinit, klist, ktab, no alternatives +# use javaws from icedtea-netx +all_jre_tools = $(filter-out javaws, $(notdir $(wildcard $(builddir)/$(jreimg)/bin/*))) +jre_tools = $(filter policytool, $(all_jre_tools)) +jre_hl_tools := $(filter-out $(jre_tools), $(all_jre_tools)) + +corba_tools = orbd servertool tnameserv +jre_hl_tools_alt= $(filter-out $(corba_tools), $(jre_hl_tools)) $(corba_tools) +jre_tools_alt = $(filter-out kinit klist ktab, $(jre_tools)) + +all_jdk_tools = $(filter-out javaws, $(notdir $(wildcard build/$(sdkimg)/bin/*))) +jdk_tools = appletviewer jconsole +jdk_tools_alt = $(jdk_tools) +jdk_hl_tools = $(filter-out $(all_jre_tools) $(jdk_tools), $(all_jdk_tools)) +jdk_hl_tools_alt= $(filter-out apt java-rmi.cgi, $(jdk_hl_tools)) + + +# build dependencies +ifneq (,$(filter $(distrel),lucid precise)) + bd_autotools = autoconf2.69, automake, autotools-dev, + export AUTOCONF=autoconf2.69 +else + bd_autotools = autoconf (>= 2.69), automake, autotools-dev, +endif +bd_bootstrap += \ + openjdk-8-jdk | openjdk-7-jdk, +ifeq (,$(filter $(distrel),squeeze wheezy jessie precise trusty)) +bd_cross += \ + openjdk-8-jdk-headless <cross>, dpkg-dev (>= 1.17.14), +endif + +# This section should be in sync with "CC/CXX" definition +ifneq (,$(filter $(distrel),squeeze lucid)) + bd_gcc = g++-4.4 (>= 4.4.1), +else ifneq (,$(filter $(distrel), precise)) + bd_gcc = g++-4.6, +else ifneq (,$(filter $(distrel), wheezy)) + bd_gcc = g++-4.7, g++-4.4 [mips mipsel], +else ifneq (,$(filter $(distrel), quantal raring)) + bd_gcc = g++-4.7, +else ifneq (,$(filter $(distrel), saucy trusty)) + bd_gcc = g++-4.8, +else ifneq (,$(filter $(distrel),utopic vivid jessie)) + bd_gcc = g++-4.9, +else ifneq (,$(filter $(distrel),wily xenial)) + bd_gcc = g++-5, +else ifneq (,$(filter $(distrel),stretch sid)) + bd_gcc = g++-6, +else + bd_gcc = g++-6, +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), libgtk2.0-dev, \ + libxinerama-dev, libkrb5-dev, xsltproc, libpcsclite-dev, + +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), +bd_xvfb = xvfb, xauth, xfonts-base, libgl1-mesa-dri [!x32], $(bd_wm) x11-xkb-utils, +bd_mauve = mauve, +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 ($(with_systemtap),yes) + bd_systemtap = systemtap-sdt-dev [!sh4], +endif + +ifneq (,$(jamvm_archs)) + bd_jamvm = libtool, +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), libgtk2.0-0 (>= 2.14), libxrandr2, libxinerama1, libgl1-mesa-glx | libgl1 +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 +ifneq (,$(filter $(distrel), wheezy jessie precise trusty xenial yakkety)) + cjk_fonts += $(if $(with_wgy_zenhai),ttf-wqy-microhei | ttf-wqy-zenhei,ttf-arphic-uming), +else + cjk_fonts += fonts-wqy-microhei, fonts-wqy-zenhei, +endif +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)' \ + +ifneq (,$(DEB_HOST_MULTIARCH)) + control_vars += \ + '-Vmultiarch:Depends=multiarch-support' +endif + +ifneq (,$(filter $(DEB_HOST_ARCH),$(jamvm_archs))) + ifneq (,$(filter $(DEB_HOST_ARCH),$(jamvm_defaults))) + control_vars += '-Vjredefault:Depends=$(p_jrej) (= $${binary:Version})' + else ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_archs))) + control_vars += '-Vjamvm:Suggests=$(p_jrej) (= $${binary:Version})' + else + control_vars += '-Vjamvm:Recommends=$(p_jrej) (= $${binary:Version})' + endif +endif + +ifeq ($(with_bridge),atk) + control_vars += '-Vdep:bridge=libatk-wrapper-java-jni (>= 0.30.4-0ubuntu2)' +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)' + +ifeq ($(with_tzdata),yes) + pkg_tzdata = tzdata-java + ifneq (,$(filter $(distrel), precise)) + pkg_tzdata += (>= 2012e-0ubuntu0.12.04.1) + endif + control_vars += '-Vtzdata:Depends=$(pkg_tzdata)' +else + bd_tzdata = tzdata, +endif + +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 + +control_vars += '-Vjrehl:Breaks=$(jrehl_breaks)' +ifeq (,$(filter $(distrel), wheezy jessie precise trusty xenial yakkety zesty)) + 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_mauve@/$(bd_mauve)/g' \ + -e 's/@bd_xvfb@/$(bd_xvfb)/g' \ + -e 's/@bd_jamvm@/$(bd_jamvm)/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/@bd_jtreg@/$(bd_jtreg)/g' \ + -e 's/@core_fonts@/$(core_fonts)/g' \ + -e 's/@cjk_fonts@/$(cjk_fonts)/g' \ + -e 's/@any_archs@/$(any_archs)/g' \ + -e 's/@jamvm_archs@/$(jamvm_archs)/g' \ + -e 's/@hotspot_archs@/$(hotspot_archs)/g' \ + -e 's/@altzero_archs@/$(altzero_archs)/g' \ + debian/control.in \ + $(if $(jamvm_archs), debian/control.jamvm-jre) \ + $(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 + +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,@with_tzdata@,$(with_tzdata),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/jamvm-configure: stamps/jamvm-unpack stamps/patch stamps/build + if [ -x jamvm/autogen.sh ]; then \ + cd jamvm && NOCONFIGURE=yes ./autogen.sh; \ + fi + mkdir -p $(jbuilddir) + cd $(jbuilddir) && ../jamvm/configure \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --host=$(DEB_HOST_GNU_TYPE) \ + --prefix=$(CURDIR)/$(jbuilddir)/install \ + --with-java-runtime-library=openjdk8 \ + --with-gnu-ld \ + CPPFLAGS='$(EXTRA_CPPFLAGS_JAMVM)' \ + CFLAGS='$(EXTRA_CFLAGS_JAMVM)' \ + CXXFLAGS='$(EXTRA_CXXFLAGS_JAMVM)' \ + LDFLAGS='$(EXTRA_LDFLAGS_JAMVM)' + 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 $@ + +stamps/jamvm-build: stamps/jamvm-configure + $(MAKE) -C $(jbuilddir) + $(MAKE) -C $(jbuilddir) install + rm -rf $(builddir)/$(sdkimg)/jre/lib/$(archdir)/jamvm + mkdir -p $(builddir)/$(sdkimg)/jre/lib/$(archdir)/jamvm + cp -p $(jbuilddir)/install/lib/libjvm.so \ + $(builddir)/$(sdkimg)/jre/lib/$(archdir)/jamvm/. + cp -p $(builddir)/$(sdkimg)/jre/lib/$(archdir)/server/Xusage.txt \ + $(builddir)/$(sdkimg)/jre/lib/$(archdir)/jamvm/. + touch $@ + +unpack: stamps/unpack stamps/jamvm-unpack +stamps/unpack: + rm -rf $(srcdir) + tar xf root.tar.xz + mv $$(tar tf root.tar.xz | head -1 | sed 's,/.*,,') $(srcdir) + chmod +x $(srcdir)/configure + for tb in corba jaxp jaxws langtools hotspot jdk nashorn; do \ + d=$$(tar tf $$tb.tar.xz | head -1 | sed 's,/.*,,'); \ + tar -C $(srcdir) -x -f $$tb.tar.xz; \ + mv $(srcdir)/$$d $(srcdir)/$$tb; \ + 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 + + : # 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 $@ + +stamps/jamvm-unpack: + mkdir -p stamps + rm -rf jamvm jamvm-* + tar xf jamvm.tar.gz + mv jamvm-2* jamvm + cp /usr/share/misc/config.* jamvm/. + patch -p1 < debian/patches/kfreebsd-support-jamvm.diff + patch -p1 < debian/patches/jamvm-fix.diff + patch -p1 < debian/patches/pr2775-cache_api.diff + @mkdir -p stamps + touch $@ + +patch: stamps/patch +stamps/patch: stamps/unpack stamps/jamvm-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), $(hotspot_archs) alpha ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el sh4)) + with_mauve_check = $(default_vm) + endif + ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs) alpha arm64 armel armhf ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390x sh4 x32)) + with_jtreg_check = $(default_vm) + endif + + ifneq (,$(filter jamvm, $(alternate_vms))) + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 )) + # only activate after testing + with_mauve_check += jamvm + endif + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386)) + # only activate after testing; hangs several tests. + with_jtreg_check += jamvm + endif + endif + + ifneq (,$(filter shark, $(alternate_vms))) + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 powerpc powerpcspe)) + # only activate after testing + with_mauve_check += $(if $(filter $(DEB_HOST_ARCH),$(altshark_archs)),shark,zero) + endif + # 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), amd64 i386)) + # only activate after testing + with_mauve_check += zero + endif + ifneq (,$(filter $(DEB_HOST_ARCH), arm64 amd64 i386)) + # only activate after testing; hangs several tests. + with_jtreg_check += zero + endif + endif + + with_mauve_check = +endif + +# these are best guesses depending on the architecture and the build machines +# some tests require 4min to run, so set the minimum timeout to 3 x 2min. +ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel armhf ia64 m68k mips mipsel mips64 mips64el powerpc powerpcspe x32)) + JTREG_OPTIONS = -timeout:5 +else + JTREG_OPTIONS = -timeout:3 +endif + +ifeq (,$(filter $(distrel),wheezy trusty)) + JTREG_OPTIONS += -conc:auto +endif + +ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf)) + JTREG_OPTIONS += -Xmx256M -vmoption:-Xmx256M +endif + +build_stamps = \ + stamps/build \ + $(if $(filter $(DEB_HOST_ARCH),$(altzero_archs)),stamps/zero-build) \ + $(if $(filter $(DEB_HOST_ARCH),$(jamvm_archs)),stamps/jamvm-build) + +ifeq ($(with_pulse),yes) + build_stamps += stamps/sound-build +endif + +build_stamps += stamps/jtreg-check-default + +ifeq (0,1) +build_stamps += stamps/mauve-check-default stamps/jtreg-check-default +build_stamps += $(if $(filter jamvm, $(alternate_vms)),stamps/mauve-check-jamvm stamps/jtreg-check-jamvm) +build_stamps += $(if $(filter zero, $(alternate_vms)),stamps/mauve-check-zero stamps/jtreg-check-zero) +ifneq (,$(filter shark, $(alternate_vms))) + ifneq (,$(filter $(DEB_HOST_ARCH),$(altshark_archs))) + build_stamps += stamps/mauve-check-shark stamps/jtreg-check-shark + else + build_stamps += stamps/mauve-check-zero 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 1; 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 1; kill -9 $$pid || :; \ + 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/xvfb-check: + mkdir -p bin test + ( \ + echo '#!/bin/sh'; \ + echo '$(with_wm_prefix) $(with_wm) $(with_wm_args) &'; \ + echo 'pid=$$!'; \ + echo 'sleep 3'; \ + echo '"$$@"'; \ + echo 'kill -9 $$pid'; \ + ) > bin/my-jtreg-run + chmod 755 bin/my-jtreg-run +ifeq (,$(wildcard /usr/bin/$(with_wm))) + echo 'xvfb-run -a -e $(CURDIR)/test/xvfb-run.log -s "-extension GLX" "$$@"' > bin/my-xvfb-run +else + echo 'xvfb-run -a -e $(CURDIR)/test/xvfb-run.log -s "-extension GLX" my-jtreg-run "$$@"' > bin/my-xvfb-run + ifeq ($(with_wm),twm) + grep -v '^include-menu-defs' /etc/X11/twm/system.twmrc-menu > bin/jtreg.tmwrc + echo RandomPlacement >> bin/jtreg.tmwrc + endif +endif + if ! /bin/sh bin/my-xvfb-run true ; then \ + echo "error running $$(cat bin/my-xvfb-run)"; \ + cat test/xvfb-run.log; \ + sed -i 's/ -s *"[^"]*"//' bin/my-xvfb-run; \ + if ! /bin/sh bin/my-xvfb-run true ; then \ + echo "error running $$(cat bin/my-xvfb-run)"; \ + cat test/xvfb-run.log; \ + rm -f bin/my-xvfb-run; \ + fi; \ + fi + if [ -f bin/my-xvfb-run ]; then \ + echo "using $$(cat bin/my-xvfb-run)"; \ + fi + touch $@ + +XVFB_RUN_CMD = xvfb-run -a -e $(CURDIR)/test/xvfb-run.log -s "-extension GLX" +ifneq (,$(wildcard /usr/bin/$(with_wm))) + XVFB_RUN_CMD += $(CURDIR)/bin/my-jtreg-run +endif + +stamps/mauve-check-default: stamps/build stamps/xvfb-check + $(MAKE) -f debian/rules mauve-run-check VMNAME=$(default_vm) VMARGS= + touch $@ + +stamps/mauve-check-jamvm: stamps/xvfb-check + $(MAKE) -f debian/rules mauve-run-check VMNAME=jamvm VMARGS='-vmarg -jamvm' + touch $@ + +stamps/mauve-check-shark: stamps/xvfb-check + $(MAKE) -f debian/rules mauve-run-check VMNAME=shark VMARGS='-vmarg -shark' + touch $@ + +stamps/mauve-check-zero: stamps/xvfb-check + $(MAKE) -f debian/rules mauve-run-check VMNAME=zero VMARGS='-vmarg -zero' + touch $@ + +stamps/mauve-build: stamps/build + rm -rf build/mauve + mkdir -p build/mauve +ifeq ($(with_mauve_check),yes) + tar -x -C build -f /usr/src/mauve.tar.gz + cd build/mauve \ + && aclocal \ + && automake \ + && autoconf \ + && PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH \ + ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) + PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH $(MAKE) -C build/mauve +endif + touch $@ + +stamps/mauve-check: stamps/build stamps/mauve-build stamps/xvfb-check + +mauve-run-check: + rm -rf build/mauve build/mauve-$(VMNAME) +ifneq (,$(filter $(VMNAME), $(with_mauve_check))) + tar -x -C build -f /usr/src/mauve.tar.gz + mv build/mauve build/mauve-$(VMNAME) + cd build/mauve-$(VMNAME) \ + && aclocal \ + && automake \ + && autoconf \ + && PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH ./configure \ + --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) + PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH $(MAKE) -C build/mauve-$(VMNAME) + + if [ -f bin/my-xvfb-run ]; then \ + cd build/mauve-$(VMNAME) && \ + JAVA_HOME=$(CURDIR)/build/$(sdkimg) \ + PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH \ + time /bin/sh $(CURDIR)/bin/my-xvfb-run java Harness \ + -vm $(CURDIR)/build/$(sdkimg)/bin/java \ + $(VMARGS) \ + -file $(CURDIR)/debian/mauve_tests \ + -timeout 30000 2>&1 \ + | tee mauve_output-$(VMNAME); \ + else \ + echo "mauve testsuite not run for this build (xvfb failures)" \ + > build/mauve-$(VMNAME)/mauve_output-$(VMNAME); \ + cat test/xvfb-run.log >> build/mauve-$(VMNAME)/mauve_output-$(VMNAME); \ + fi + @sleep 5 +else + mkdir -p build/mauve-$(VMNAME) + echo "mauve testsuite not run for this build" \ + > build/mauve-$(VMNAME)/mauve_output-$(VMNAME) +endif + +stamps/jtreg-check-default: stamps/build stamps/xvfb-check + $(MAKE) -f debian/rules jtreg-run-check VMNAME=$(default_vm) VMARGS= \ + TEST_SUITES='hotspot langtools' +# $(if $(filter $(default_vm),hotspot),TEST_SUITES='hotspot langtools jdk',TEST_SUITES='hotspot langtools') + touch $@ + +stamps/jtreg-check-jamvm: stamps/build stamps/xvfb-check + $(MAKE) -f debian/rules jtreg-run-check VMNAME=jamvm VMARGS='-vmoption:-jamvm' \ + TEST_SUITES='hotspot langtools' + touch $@ + +stamps/jtreg-check-shark: stamps/build stamps/xvfb-check + $(MAKE) -f debian/rules jtreg-run-check VMNAME=shark VMARGS='-vmoption:-shark' \ + TEST_SUITES='hotspot langtools' + touch $@ + +stamps/jtreg-check-zero: stamps/build stamps/xvfb-check + $(MAKE) -f debian/rules jtreg-run-check VMNAME=zero VMARGS='-vmoption:-zero' \ + TEST_SUITES='langtools hotspot' + touch $@ + +jtreg-run-check: + mkdir -p test +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) $(JTREG_OPTIONS)' \ + 2>&1 | tee test/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 test/$$i ]; then \ + mv test/$$i test/$${i%*.log}-$(VMNAME).log; \ +# else \ +# mkdir -p test; \ +# cp test/jtreg_output-$(VMNAME) test/$${i%*.log}-$(VMNAME).log; \ +# fi; \ +# done + + for i in check-hotspot.log check-jdk.log check-langtools.log jtreg-summary.log; do \ + if [ -f test/$$i ]; then \ + mv test/$$i test/$${i%*.log}-$(VMNAME).log; \ + else \ + mkdir -p test; \ + fi; \ + done + + @echo "BEGIN jtreg-summary-$(VMNAME)" + -cat test/jtreg-summary-$(VMNAME).log + @echo "END jtreg-summary-$(VMNAME)" + + : # kill testsuite processes still hanging + @pids=$$($(jtreg_pids)); \ + if [ -n "$$pids" ]; then \ + echo "killing processes..."; \ + $(jtreg_processes); \ + kill -1 $$pids; \ + sleep 2; \ + pids=$$($(jtreg_pids)); \ + if [ -n "$$pids" ]; then \ + echo "trying harder..."; \ + $(jtreg_processes); \ + kill -9 $$pids; \ + sleep 2; \ + fi; \ + else \ + echo "nothing to cleanup"; \ + fi; \ + pids=$$($(jtreg_pids)); \ + if [ -n "$$pids" ]; then \ + echo "leftover processes..."; \ + $(jtreg_processes); \ + fi + + -for i in hotspot langtools jdk; do \ + test -f test/check-$$i-$(VMNAME).log || continue; \ + for t in $$(egrep '^(FAILED|Error)' test/check-$$i-$(VMNAME).log | sed 's/.* \(.*\)\.[^.][^.]*$$/\1/'); do \ + echo test/$$i/JTwork/$$t.jtr; \ + done; \ + done > test/failed_tests-$(VMNAME).list; \ + GZIP=-9vn tar -C . -c -z -f test/failed_tests-$(VMNAME).tar.gz -T test/failed_tests-$(VMNAME).list +else + echo "jtreg harness not run for this build" > test/jtreg_output-$(VMNAME) +endif + +# ---------------------------------------------------------------------------- +# jtreg targets taken from IcedTea + +export JTREG_HOME=/usr/share/java + +TESTS_TO_RUN = $(addprefix check-,$(TEST_SUITES)) + +check-hotspot: stamps/build + mkdir -p test/hotspot/JTwork test/hotspot/JTreport + JT_JAVA=$(BOOTJDK_HOME) jtreg -v1 -a -ignore:quiet \ + -w:test/hotspot/JTwork -r:test/hotspot/JTreport \ + -agentvm \ + -jdk:$(builddir)/$(sdkimg) \ + $(JTREG_OPTIONS) \ + $(CURDIR)/$(srcdir)/hotspot/test \ + | tee test/$@.log + +check-langtools: stamps/build + mkdir -p test/langtools/JTwork test/langtools/JTreport + JT_JAVA=$(BOOTJDK_HOME) jtreg -v1 -a -ignore:quiet \ + -w:test/langtools/JTwork -r:test/langtools/JTreport \ + -agentvm \ + -jdk:$(builddir)/$(sdkimg) \ + $(JTREG_OPTIONS) \ + -exclude:debian/excludelist.langtools.jtx \ + $(CURDIR)/$(srcdir)/langtools/test \ + | tee test/$@.log + +check-jdk: stamps/build stamps/xvfb-check + mkdir -p test/jdk/JTwork test/jdk/JTreport + set -x; \ + if test "x$${DISPLAY}" = "x"; then XVFB_RUN="$(XVFB_RUN_CMD)"; fi; \ + if test "x$${DISPLAY}" = "x" && test "x$${XVFB_RUN}" = "x"; then \ + echo "WARNING: DISPLAY not set and xvfb-run not found"; \ + fi; \ + $(if $(DISPLAY),,$(XVFB_RUN_CMD)) \ + JT_JAVA=$(BOOTJDK_HOME) jtreg -v1 -a -ignore:quiet \ + -w:test/jdk/JTwork -r:test/jdk/JTreport \ + -agentvm \ + -jdk:$(builddir)/$(sdkimg) \ + $(JTREG_OPTIONS) \ + -exclude:debian/excludelist.jdk.jtx \ + $(CURDIR)/$(srcdir)/jdk/test \ + | tee test/$@.log + +# FIXME: this might need some adjustment for other OS than Linux +jtreg_processes = ps x -ww -o pid,ppid,args \ + | awk '$$2 == 1 && $$3 ~ /^$(subst /,\/,/scratch)/' \ + | $(SED) 's,$(CURDIR)/$(builddir)/$(sdkimg),<sdkimg>,g;s,$(CURDIR),<pwd>,g' +jtreg_pids = ps x --no-headers -ww -o pid,ppid,args \ + | awk '$$2 == 1 && $$3 ~ /^$(subst /,\/,$(CURDIR)/$(builddir)/$(sdkimg))/ {print $$1}' + +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)' test/check-$$i.log; \ + done | tee test/jtreg-summary.log + + : # kill testsuite processes still hanging + @pids=$$($(jtreg_pids)); \ + if [ -n "$$pids" ]; then \ + echo "killing processes..."; \ + $(jtreg_processes); \ + kill -1 $$pids; \ + sleep 2; \ + pids=$$($(jtreg_pids)); \ + if [ -n "$$pids" ]; then \ + echo "try harder..."; \ + $(jtreg_processes); \ + kill -9 $$pids; \ + sleep 2; \ + fi; \ + else \ + echo "nothing to cleanup"; \ + fi; \ + pids=$$($(jtreg_pids)); \ + if [ -n "$$pids" ]; then \ + echo "leftover processes..."; \ + $(jtreg_processes); \ + fi + +# ---------------------------------------------------------------------------- + +clean: debian-clean + dh_testdir + dh_testroot + rm -rf $(srcdir) jamvm + rm -rf stamps build build-* test + 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 + cp debian/jvm.cfg-default $(d)/$(basedir)/jre/lib/$(archdir)/ + +ifeq ($(with_tzdata),yes) + : # use the timezone files from tzdata-java + rm -rf $(d)/$(basedir)/jre/lib/zi +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 $(DEB_HOST_ARCH), $(hotspot_archs))) + printf -- '-zero KNOWN\n' >> $(d)/$(etcdir)/jvm.cfg +else + printf -- '-zero ALIASED_TO -server\n' >> $(d)/$(etcdir)/jvm.cfg +endif + +ifneq (,$(filter $(DEB_HOST_ARCH), $(jamvm_archs))) + printf -- '-jamvm KNOWN\n' >> $(d)/$(etcdir)/jvm.cfg +endif + +ifneq (,$(filter $(DEB_HOST_ARCH),$(jamvm_defaults))) + grep '^[# ]' $(d)/$(etcdir)/jvm.cfg \ + > $(d)/$(etcdir)/jvm.cfg.new + grep 'jamvm' $(d)/$(etcdir)/jvm.cfg \ + >> $(d)/$(etcdir)/jvm.cfg.new + egrep -v '^[# ]|jamvm' $(d)/$(etcdir)/jvm.cfg \ + >> $(d)/$(etcdir)/jvm.cfg.new + mv $(d)/$(etcdir)/jvm.cfg.new $(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.jar'; \ + 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 + $(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;; \ + */jamvm) echo $$i >> ../$(p_jrej).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 + + : # 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 + +ifeq ($(with_tzdata),yes) + echo usr/share/javazi $(basedir)/jre/lib/zi \ + >> $(d_jrehl).links +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) + +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)) +nojrej = $(if $(filter jamvm, $(alternate_vms)),,-N$(p_jrej)) +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 mauve-$(1)/mauve_output-$(1) \ +# $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/mauve_output-$(1).log + -cp jtreg_output-$(1) \ + $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/jtreg_output-$(1).log + -cp test/jtreg-summary-$(1).log test/check-*-$(1).log \ + $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/ + -cp test/failed_tests-$(1).tar.gz \ + $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/failed_tests-$(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)) + +ifneq (,$(filter jamvm, $(alternate_vms))) + dh_installchangelogs -p$(p_jrej) + dh_installdocs -p$(p_jrej) + $(call install_test_results,jamvm) +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) $(nojrej) $(nojrez) +endif + -dh_icons -s $(nodemo) $(nojrej) $(nojrez) \ + || dh_iconcache -s $(nodemo) $(nojrej) $(nojrez) +# dh_installdebconf -s $(nodemo) $(nojrej) $(nojrez) + dh_link -s $(nodemo) $(nojrej) $(nojrez) + $(if $(filter $(dh_version), 5 6 7 8),NADA=,DH_COMPAT=9) dh_strip -s \ + $(nodemo) $(nojrej) $(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" ] || [ "$(dh_version)" -lt 9 ]; 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; \ + pushd $(d_dbg)/$$d >/dev/null; \ + objcopy --add-gnu-debuglink $$f $(CURDIR)/$$i; \ + popd >/dev/null; \ + fi; \ + done +endif + + dh_compress -s $(nodemo) $(nojrej) $(nojrez) -Xexamples -Xdemo -Xpackage-list + dh_fixperms -s $(nodemo) $(nojrej) $(nojrez) + dh_makeshlibs -p$(p_jrehl) -p$(p_jre) + dh_shlibdeps -s $(nodemo) $(nojrej) $(nojrez) -L $(p_jrehl) \ + -l$(shlibdeps_ld_path) \ + -- + dh_installdeb -s $(nodemo) $(nojrej) $(nojrez) + dh_gencontrol -s $(nodemo) $(nojrej) $(nojrez) \ + -- $(control_vars) + dh_md5sums -s $(nodemo) $(nojrej) $(nojrez) + : # FIXME: something seems to hang here ... + -ps afx + NO_PKG_MANGLE=1 \ + dh_builddeb -s $(nodemo) $(nojrej) $(nojrez) #$(bd_options) + +is_release = +is_release = yes +hg_project = jdk8u +hg_tag = jdk8u131-b11 +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 +hg_tag_aarch64 = aarch64-jdk8u131-b12 +hg_url_aarch64 = http://hg.openjdk.java.net/aarch64-port/$(hg_project_aarch64) +origdir = ../openjdk-8-$(package_version).orig +get-orig: + mkdir $(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 + + 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 + + wget -O $(origdir)/jamvm.tar.gz \ + http://downloads.sourceforge.net/project/jamvm/jamvm/JamVM%202.0.0/jamvm-2.0.0.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fjamvm%2Ffiles%2Fjamvm%2FJamVM%25202.0.0%2F&ts=1422282260&use_mirror=netcologne + + : # 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; do \ + [ -f $(origdir)/$$repo.tar.bz2 ] || continue; \ + d=$$(tar tf $(origdir)/$$repo.tar.bz2 | head -1 | sed 's,/.*,,'); \ + tar xf $(origdir)/$$repo.tar.bz2; \ + find $$d -maxdepth 2 -name THIRD_PARTY_README; \ + for f in $$(find $$d -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 $$d/src/share/native/java/util/zip/zlib-*; \ + find $$d/src/share/native/sun/awt/image/jpeg \ + ! -name imageioJPEG.c ! -name jpegdecoder.c ! -name jinclude.h \ + -type f -print -delete; \ + rm -v -rf $$d/src/share/native/sun/awt/giflib; \ + rm -v -rf $$d/src/share/native/sun/awt/libpng; \ + rm -v -f $$d/src/share/native/sun/java2d/cmm/lcms/cms*.c; \ + rm -v -f $$d/src/share/native/sun/java2d/cmm/lcms/lcms2*.h; \ + rm -v -rf $$d/src/solaris/native/sun/security/smartcardio/MUSCLE; \ + esac; \ + tar cfJ $(origdir)/$$repo.tar.xz $$d; \ + rm -rf $$d; \ + rm -f $(origdir)/$$repo.tar.bz2; \ + done + +binary: binary-arch binary-indep +.PHONY: build build-arch build-indep clean binary-indep binary-arch binary install packaging-files diff --git a/debian/sharedmimeinfo b/debian/sharedmimeinfo new file mode 100644 index 0000000..78604fd --- /dev/null +++ b/debian/sharedmimeinfo @@ -0,0 +1,12 @@ +<?xml version="1.0"?> +<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'> + <mime-type type="application/java-archive"> + <comment>Java Archive</comment> + <glob pattern="*.jar"/> + </mime-type> + + <mime-type type="application/x-java-jnlp-file"> + <comment>Java Web Start application</comment> + <glob pattern="*.jnlp"/> + </mime-type> +</mime-info> diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides new file mode 100644 index 0000000..485c6e1 --- /dev/null +++ b/debian/source/lintian-overrides @@ -0,0 +1 @@ +openjdk-8 source: quilt-build-dep-but-no-series-file diff --git a/debian/sun_java.xpm b/debian/sun_java.xpm new file mode 100644 index 0000000..00db1b6 --- /dev/null +++ b/debian/sun_java.xpm @@ -0,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 --git a/debian/sun_java_app.xpm b/debian/sun_java_app.xpm new file mode 100644 index 0000000..7a0f941 --- /dev/null +++ b/debian/sun_java_app.xpm @@ -0,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 --git a/debian/swing.properties b/debian/swing.properties new file mode 100644 index 0000000..0f55df0 --- /dev/null +++ b/debian/swing.properties @@ -0,0 +1,2 @@ +# uncomment to set the default look and feel to GTK +#swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 0000000..4118bed --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,17 @@ +Test-Command: debian/tests/jtreg-autopkgtest hotspot +Depends: openjdk-8-jdk, jtreg, dpkg-dev, gcc + +Test-Command: debian/tests/jtreg-autopkgtest langtools +Depends: openjdk-8-jdk, jtreg, dpkg-dev, gcc + +Test-Command: debian/tests/jtreg-autopkgtest jdk +Depends: openjdk-8-jdk, jtreg, dpkg-dev, gcc, xfwm4, xvfb + +Test-Command: debian/tests/jtreg-autopkgtest hotspot -vmoption:-jamvm +Depends: openjdk-8-jdk, jtreg, dpkg-dev, gcc + +Test-Command: debian/tests/jtreg-autopkgtest langtools -vmoption:-jamvm +Depends: openjdk-8-jdk, jtreg, dpkg-dev, gcc + +Test-Command: debian/tests/jtreg-autopkgtest jdk -vmoption:-jamvm +Depends: openjdk-8-jdk, jtreg, dpkg-dev, gcc, xfwm4, xvfb diff --git a/debian/tests/jtreg-autopkgtest b/debian/tests/jtreg-autopkgtest new file mode 100644 index 0000000..c9eba40 --- /dev/null +++ b/debian/tests/jtreg-autopkgtest @@ -0,0 +1,87 @@ +#!/bin/bash + +set -o errexit +set -o errtrace +set -o pipefail +set -o nounset + +testsuite=$1 +shift 1 + +tmp_dir="${AUTOPKGTEST_TMP:-/tmp/autopkgtest/tmp}" +result_dir="${AUTOPKGTEST_ARTIFACTS:-/tmp/autopkgtest/artifact}" + +testsuite_dir="${tmp_dir}/${testsuite}" + +work_dir="${result_dir}/${testsuite}/JTwork" +report_dir="${result_dir}/${testsuite}/JTreport" + +pids="" + +mkdir -p "${tmp_dir}" "${work_dir}" "${report_dir}" + +source <(dpkg-architecture -s) + +tarball=${testsuite}.tar.xz +case ${testsuite} in + hotspot) + if [ ${DEB_BUILD_ARCH} == "arm64" ]; then + tarball=hotspot-aarch64.tar.xz + elif [ ${DEB_BUILD_ARCH} == "armhf" ]; then + tarball=hotspot-aarch32.tar.xz + fi + ;; + jdk) + xvfb-run --auto-servernum --server-num=10 \ + --error-file=${AUTOPKGTEST_ARTIFACTS}/xvfb-run.log \ + -f ${AUTOPKGTEST_TMP}/Xauthority-xvfb \ + --server-args="-extension GLX -screen 0 1600x900x24" \ + xfwm4 & + pids+=" $!" + ;; + langtools) ;; + *) exit 1;; +esac + +# unpack testsuite tarball +d="$(head -1 <(tar tf ${tarball}) | sed 's,/.*,,')" +tar -C "${tmp_dir}" -x -f ${tarball} "${d}/test/" +mv "${tmp_dir}/${d}" "${testsuite_dir}" + +# from debian/rules +# these are best guesses depending on the architecture and the build machines +# some tests require 4min to run, so set the minimum timeout to 3 x 2min. +jt_timeout="3" +if [[ "alpha armel armhf ia64 m68k mips mipsel mips64 mips64el powerpc powerpcspe x32" == *"${DEB_HOST_ARCH}"* ]]; then + jt_timeout="5" +fi + +# grab additional options from command line args +jt_options="$@" +if [[ "armel" == *"${DEB_HOST_ARCH}"* ]]; then + jt_options+=" -Xmx256M" +fi + +# jtreg will use default-java if JT_JAVA is not set +export JT_JAVA=/usr/lib/jvm/java-8-openjdk-${DEB_HOST_ARCH} + +jtreg ${jt_options} \ + -verbose:1 \ + -automatic \ + -ignore:quiet \ + -agentvm \ + -conc:auto \ + -timeout:${jt_timeout} \ + -jdk:${JT_JAVA} \ + -exclude:debian/excludelist.${testsuite}.jtx \ + -w:${work_dir} \ + -r:${report_dir} \ + ${testsuite_dir}/test \ + | tee ${result_dir}/check-${testsuite}-stdout.log \ + 2> ${result_dir}/check-${testsuite}-stderr.log + +if [ -n "${pids}" ]; then + kill ${pids} 2>&1 || true + sleep 5 + kill -9 ${pids} || true +fi diff --git a/debian/tests/valid-tests b/debian/tests/valid-tests new file mode 100644 index 0000000..4400726 --- /dev/null +++ b/debian/tests/valid-tests @@ -0,0 +1,5 @@ +#!/bin/sh + +testsuite_dir=$1 + +fgrep -r --include='*.java' --include='*.sh' --files-with-match @test ${testsuite_dir} | xargs fgrep -L '@ignore' | sort -d -i diff --git a/debian/update-hgrev.sh b/debian/update-hgrev.sh new file mode 100644 index 0000000..8df65cf --- /dev/null +++ b/debian/update-hgrev.sh @@ -0,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 --git a/debian/update-shasum.sh b/debian/update-shasum.sh new file mode 100644 index 0000000..af38b92 --- /dev/null +++ b/debian/update-shasum.sh @@ -0,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 |