diff --git a/java/backup/ecj-4.9.jar b/java/backup/ecj-4.9.jar new file mode 100644 index 0000000..29dc442 Binary files /dev/null and b/java/backup/ecj-4.9.jar differ diff --git a/java/backup/javac.in b/java/backup/javac.in new file mode 100644 index 0000000..8eeda68 --- /dev/null +++ b/java/backup/javac.in @@ -0,0 +1,57 @@ +#!/usr/bin/perl -w +use strict; +use constant NO_DUP_ARGS => qw(-source -target -d -encoding); +use constant STRIP_ARGS => qw(-Werror -implicit:none -J-Xbootclasspath/p:); + +my $ECJ_WARNINGS="-nowarn"; + +my ( @bcoption, @source15, @target15, @cp ); +push @bcoption, '-bootclasspath', '@RT_JAR@:@TOOLS_JAR@' + unless grep {$_ eq '-bootclasspath'} @ARGV; +push @source15, '-source', '1.5' + unless grep {$_ eq '-source'} @ARGV; +push @target15, '-target', '1.5' + unless grep {$_ eq '-target'} @ARGV; +push @cp, '-cp', '.' + unless grep {$_ =~ '\-c(p|lasspath)'} @ARGV or $ENV{CLASSPATH}; +my @ecj_parms = ($ECJ_WARNINGS, @bcoption, @source15, @target15, @cp); + +# Work around ecj's inability to handle duplicate command-line +# options and unknown javac options. +sub gen_ecj_opts +{ + my @new_args = @{$_[0]}; + + for my $opt (NO_DUP_ARGS) + { + my @indices = reverse grep {$new_args[$_] eq $opt} 0..$#new_args; + if (@indices > 1) { + shift @indices; # keep last instance only + splice @new_args, $_, 2 for @indices; + } + } + + for my $opt (STRIP_ARGS) + { + my @indices = reverse grep {$new_args[$_] eq $opt} 0..$#new_args; + splice @new_args, $_, 1 for @indices; + } + + return \@new_args; +} + +sub split_vm_args +{ + my @new_args = @{$_[0]}; + + my @vm_args = map { substr $_, 2 } grep $_ =~ /^-J/, @new_args; + my @javac_args = grep $_ !~ /^-J/, @new_args; + + return (\@vm_args, \@javac_args); +} + +my ($vm_args, $javac_args) = split_vm_args (gen_ecj_opts( \@ARGV )); +my @CLASSPATH = ('@ECJ_JAR@'); +push @CLASSPATH, split /:/, $ENV{"CLASSPATH"} if exists $ENV{"CLASSPATH"}; +$ENV{"CLASSPATH"} = join ':', @CLASSPATH; +exec '@JAVA@', @$vm_args, 'org.eclipse.jdt.internal.compiler.batch.Main', @ecj_parms, @$javac_args; diff --git a/java/build.sh b/java/build.sh index 58783a6..aae12de 100755 --- a/java/build.sh +++ b/java/build.sh @@ -1,9 +1,15 @@ #!/bin/sh set -eu -export MAKEFLAGS="-j$(nproc)" +export MAKEFLAGS="-j${NPROC:-$(nproc)}" -version_jdk11=11.0.9.1+1 +version_jdk17=17.0.1+12 +version_jdk16=16.0.2+7 +version_jdk15=15.0.3+3 +version_jdk14=14.0.2+12 +version_jdk13=13.0.5.1+1 +version_jdk12=12.0.2+10 +version_jdk11=11.0.12+7 version_jdk10=10.0.2+13 version_jdk9=9+181 @@ -11,6 +17,13 @@ version_jdk9=9+181 [ ! -d build/install-ant ] && ./build_ant.sh [ ! -d build/install-icedtea7 ] && ./build_icedtea7.sh [ ! -d build/install-icedtea8 ] && ./build_icedtea8.sh +[ ! -d build/install-make42 ] && ./build_make42.sh [ ! -d build/install-jdk9 ] && ./build_jdk.sh icedtea8 jdk9 "$version_jdk9" [ ! -d build/install-jdk10 ] && ./build_jdk.sh jdk9 jdk10 "$version_jdk10" [ ! -d build/install-jdk11 ] && ./build_jdk.sh jdk10 jdk11 "$version_jdk11" +[ ! -d build/install-jdk12 ] && ./build_jdk.sh jdk11 jdk12 "$version_jdk12" +[ ! -d build/install-jdk13 ] && ./build_jdk.sh jdk12 jdk13 "$version_jdk13" +[ ! -d build/install-jdk14 ] && ./build_jdk.sh jdk13 jdk14 "$version_jdk14" +[ ! -d build/install-jdk15 ] && ./build_jdk.sh jdk14 jdk15 "$version_jdk15" +[ ! -d build/install-jdk16 ] && ./build_jdk.sh jdk15 jdk16 "$version_jdk16" +[ ! -d build/install-jdk17 ] && ./build_jdk.sh jdk16 jdk17 "$version_jdk17" diff --git a/java/build_ant.sh b/java/build_ant.sh index da12a81..9755e0c 100755 --- a/java/build_ant.sh +++ b/java/build_ant.sh @@ -1,15 +1,17 @@ #!/bin/sh set -eu -version_ant=1.9.13 +version_ant=1.9.16 dir_download="$PWD/download" +dir_files="$PWD/files" mkdir -p build; cd build dir_install="$PWD/install-ant" # Prepare source tar xf "$dir_download/apache-ant-$version_ant-src.tar.bz2" cd "apache-ant-$version_ant" +patch -p1 -i "$dir_files/apache-ant-1.9.16-fix-java4.patch" # Build and install unset JAVAC JAVACMD CLASSPATH diff --git a/java/build_icedtea7.sh b/java/build_icedtea7.sh index 8caf821..6b510fa 100755 --- a/java/build_icedtea7.sh +++ b/java/build_icedtea7.sh @@ -11,27 +11,28 @@ makeopts_jobs() { echo ${jobs:-1} } -version_icedtea7=2.6.17 +version_icedtea7=2.6.28 dir_download="$PWD/download" +dir_files="$PWD/files" mkdir -p build; cd build dir_install="$PWD/install-icedtea7" -# Prepare source +## Prepare source tar xf "$dir_download/icedtea-$version_icedtea7.tar.xz" cd "icedtea-$version_icedtea7" - -cp ../../icedtea7-fixes.patch . - -for part in corba.tar.bz2 hotspot.tar.bz2 jaxp.tar.bz2 jaxws.tar.bz2 jdk.tar.bz2 langtools.tar.bz2 openjdk.tar.bz2; do - cp "$dir_download/icedtea-$version_icedtea7-$part" "$part" +for part in corba hotspot jaxp jaxws jdk langtools openjdk; do + cp "$dir_download/icedtea-$version_icedtea7-$part.tar.bz2" "$part.tar.bz2" done +cp "$dir_files/icedtea-2.6.28-fix-includes.patch" . +cp "$dir_files/icedtea-2.6.28-fix-bootstrap.patch" . +unset _JAVA_OPTIONS unset JAVA_HOME BOOTDIR ALT_BOOTDIR # openjdk-boot/hotspot/make/linux/makefiles/sa.make export PATH="$PWD/../install-ant/bin:$PWD/../install-gcc/lib/jvm/bin:$PWD/../install-gcc/bin:$PATH" # Configure source -./configure \ +CONFIG_SHELL=/bin/bash ./configure \ --prefix="$dir_install" \ --with-jdk-home="$PWD/../install-gcc/lib/jvm" \ --with-parallel-jobs="$(makeopts_jobs)" \ @@ -44,5 +45,7 @@ export PATH="$PWD/../install-ant/bin:$PWD/../install-gcc/lib/jvm/bin:$PWD/../ins --disable-system-sctp # Build and install -make DISTRIBUTION_PATCHES=icedtea7-fixes.patch +make \ + DISTRIBUTION_PATCHES=icedtea-2.6.28-fix-includes.patch \ + DISTRIBUTION_BOOT_PATCHES=icedtea-2.6.28-fix-bootstrap.patch make install diff --git a/java/build_icedtea8.sh b/java/build_icedtea8.sh index bea959f..313ea40 100755 --- a/java/build_icedtea8.sh +++ b/java/build_icedtea8.sh @@ -11,7 +11,7 @@ makeopts_jobs() { echo ${jobs:-1} } -version_icedtea8=3.17.0 +version_icedtea8=3.21.0 dir_download="$PWD/download" mkdir -p build; cd build @@ -20,15 +20,15 @@ dir_install="$PWD/install-icedtea8" # Prepare source tar xf "$dir_download/icedtea-$version_icedtea8.tar.xz" cd "icedtea-$version_icedtea8" - -for part in corba.tar.xz hotspot.tar.xz jaxp.tar.xz jaxws.tar.xz jdk.tar.xz langtools.tar.xz nashorn.tar.xz openjdk.tar.xz; do - cp "$dir_download/icedtea-$version_icedtea8-$part" "$part" +for part in corba hotspot jaxp jaxws jdk langtools nashorn openjdk; do + cp "$dir_download/icedtea-$version_icedtea8-$part.tar.xz" "$part.tar.xz" done +unset _JAVA_OPTIONS export PATH="$PWD/../install-icedtea7/bin:$PATH" # Configure source -./configure \ +CONFIG_SHELL=/bin/bash ./configure \ --prefix="$dir_install" \ --with-jdk-home="$PWD/../install-icedtea7" \ --with-parallel-jobs="$(makeopts_jobs)" \ diff --git a/java/build_jdk.sh b/java/build_jdk.sh index 624d1bf..771100f 100755 --- a/java/build_jdk.sh +++ b/java/build_jdk.sh @@ -16,29 +16,90 @@ version_jdk_major="$2" version_jdk="$3" dir_download="$PWD/download" +dir_files="$PWD/files" mkdir -p build; cd build dir_install="$PWD/install-$version_jdk_major" case "$version_jdk_major" in -jdk9) name="jdk" ;; -*) name="${version_jdk_major}u" ;; +jdk9) + archive="jdk-jdk-$version_jdk.tar.bz2" + srcdir="jdk-jdk-$version_jdk" + ;; +jdk10|jdk11|jdk12|jdk13|jdk14|jdk15) + archive="${version_jdk_major}u-jdk-$version_jdk.tar.bz2" + srcdir="${version_jdk_major}u-jdk-$version_jdk" + ;; +*) + archive="${version_jdk_major}u-jdk-$version_jdk.tar.gz" + srcdir="${version_jdk_major}u-jdk-$(echo $version_jdk | tr + -)" + ;; esac # Prepare source -tar xf "$dir_download/$name-jdk-$version_jdk.tar.bz2" -cd "$name-jdk-$version_jdk" +tar xf "$dir_download/$archive" +cd "$srcdir" chmod +x configure +# Some jdk versions require fixing up things +CFLAGS="" +CXXFLAGS="" +case "$version_jdk_major" in +jdk9) + patch -p1 -i "$dir_files/jdk-9+181-fix-pointer-comparison.patch" + sed -i -e '/^ *COMPILER_VERSION_NUMBER=/{N;s/\[1-9\]/&[0-9]*/}' \ + common/autoconf/generated-configure.sh + export PATH="$PWD/../install-make42:$PATH" + export MAKE="$PWD/../install-make42/make" + CFLAGS="$CFLAGS -fcommon" + CXXFLAGS="$CFLAGS -fcommon" + ;; +jdk10) + patch -p1 -i "$dir_files/jdk-10.0.2+13-fix-pointer-comparison.patch" + sed -i -e '/^ *COMPILER_VERSION_NUMBER=/{N;s/\[1-9\]/&[0-9]*/}' \ + make/autoconf/generated-configure.sh + export PATH="$PWD/../install-make42:$PATH" + export MAKE="$PWD/../install-make42/make" + CFLAGS="$CFLAGS -fcommon" + CXXFLAGS="$CFLAGS -fcommon" + ;; +jdk12) + sed -i -e '/^ *COMPILER_VERSION_NUMBER=/{N;s/@<:@1-9@:>@/&@<:@0-9@:>@*/}' \ + make/autoconf/toolchain.m4 + export PATH="$PWD/../install-make42:$PATH" + export MAKE="$PWD/../install-make42/make" + CFLAGS="$CFLAGS -fcommon" + CXXFLAGS="$CFLAGS -fcommon" + ;; +jdk13) + sed -i -e '/^ *COMPILER_VERSION_NUMBER=/{N;s/@<:@1-9@:>@/&@<:@0-9@:>@*/}' \ + make/autoconf/toolchain.m4 + CFLAGS="$CFLAGS -fcommon" + CXXFLAGS="$CFLAGS -fcommon" + ;; +jdk14) + CFLAGS="$CFLAGS -fcommon" + CXXFLAGS="$CFLAGS -fcommon" + ;; +jdk16) + sed -i -e 's/\/fixpath_prefix/g' \ + make/autoconf/util_paths.m4 + ;; +esac + +unset _JAVA_OPTIONS JAVAC + # Configure source -./configure \ +CONFIG_SHELL=/bin/bash ./configure \ --prefix="$dir_install" \ --with-boot-jdk="$PWD/../install-$version_jdk_bootstrap" \ --with-jobs="$(makeopts_jobs)" \ + --with-extra-cflags="$CFLAGS -w" \ + --with-extra-cxxflags="$CXXFLAGS -w" \ --disable-full-docs \ --enable-headless-only \ --disable-warnings-as-errors +echo "$version_jdk" > .src-rev # Build and install unset MAKEFLAGS -make product-images make install diff --git a/java/build_make42.sh b/java/build_make42.sh new file mode 100755 index 0000000..476fe14 --- /dev/null +++ b/java/build_make42.sh @@ -0,0 +1,21 @@ +#!/bin/sh +set -eu + +version_make42=4.2.1 + +dir_download="$PWD/download" +mkdir -p build; cd build +dir_install="$PWD/install-make42" + +# Prepare source +tar xf "$dir_download/make-$version_make42.tar.bz2" +cd "make-$version_make42" + +# Configure source +CFLAGS="-D__alloca=alloca -D__stat=stat" \ +./configure \ + --prefix="$dir_install" + +# Build and install +make +install -Dm755 make "$dir_install/make" diff --git a/java/download.sh b/java/download.sh index c159d4f..c5ccba7 100755 --- a/java/download.sh +++ b/java/download.sh @@ -1,33 +1,47 @@ #!/bin/sh set -eu -version_jdk11=11.0.9.1+1 # https://hg.openjdk.java.net/jdk-updates/jdk11u/tags +version_jdk17=17.0.1+12 # https://github.com/openjdk/jdk17u/tags +version_jdk16=16.0.2+7 # https://github.com/openjdk/jdk16u/tags +version_jdk15=15.0.3+3 # https://hg.openjdk.java.net/jdk-updates/jdk15u/tags +version_jdk14=14.0.2+12 # https://hg.openjdk.java.net/jdk-updates/jdk14u/tags +version_jdk13=13.0.5.1+1 # https://hg.openjdk.java.net/jdk-updates/jdk13u/tags +version_jdk12=12.0.2+10 # https://hg.openjdk.java.net/jdk-updates/jdk12u/tags +version_jdk11=11.0.12+7 # https://hg.openjdk.java.net/jdk-updates/jdk11u/tags version_jdk10=10.0.2+13 # https://hg.openjdk.java.net/jdk-updates/jdk10u/tags version_jdk9=9+181 # https://hg.openjdk.java.net/jdk/jdk/tags -version_icedtea8=3.17.0 # https://icedtea.classpath.org/wiki/Main_Page#Getting_IcedTea -version_icedtea7=2.6.17 # https://icedtea.classpath.org/wiki/Main_Page#Getting_IcedTea (2.6.18+ seems to fail) -version_ant=1.9.13 # https://ant.apache.org/manual-1.9.x/index.html (1.9.14+ seems to fail) +version_make42=4.2.1 # https://ftp.gnu.org/gnu/make/ +version_icedtea8=3.21.0 # https://icedtea.classpath.org/wiki/Main_Page#Getting_IcedTea +version_icedtea7=2.6.28 # https://icedtea.classpath.org/wiki/Main_Page#Getting_IcedTea (2.6.18+ seems to fail) +version_ant=1.9.16 # https://ant.apache.org/manual-1.9.x/index.html version_gcc=6.5.0 # Final version version_ecj=4.9 # Final version mkdir -p download cd download +wget -O "jdk17u-jdk-$version_jdk17.tar.gz" -c "https://github.com/openjdk/jdk17u/archive/refs/tags/jdk-$version_jdk17.tar.gz" +wget -O "jdk16u-jdk-$version_jdk16.tar.gz" -c "https://github.com/openjdk/jdk16u/archive/refs/tags/jdk-$version_jdk16.tar.gz" +wget -O "jdk15u-jdk-$version_jdk15.tar.bz2" -c "https://hg.openjdk.java.net/jdk-updates/jdk15u/archive/jdk-$version_jdk15.tar.bz2" +wget -O "jdk14u-jdk-$version_jdk14.tar.bz2" -c "https://hg.openjdk.java.net/jdk-updates/jdk14u/archive/jdk-$version_jdk14.tar.bz2" +wget -O "jdk13u-jdk-$version_jdk13.tar.bz2" -c "https://hg.openjdk.java.net/jdk-updates/jdk13u/archive/jdk-$version_jdk13.tar.bz2" +wget -O "jdk12u-jdk-$version_jdk12.tar.bz2" -c "https://hg.openjdk.java.net/jdk-updates/jdk12u/archive/jdk-$version_jdk12.tar.bz2" wget -O "jdk11u-jdk-$version_jdk11.tar.bz2" -c "https://hg.openjdk.java.net/jdk-updates/jdk11u/archive/jdk-$version_jdk11.tar.bz2" wget -O "jdk10u-jdk-$version_jdk10.tar.bz2" -c "https://hg.openjdk.java.net/jdk-updates/jdk10u/archive/jdk-$version_jdk10.tar.bz2" wget -O "jdk-jdk-$version_jdk9.tar.bz2" -c "https://hg.openjdk.java.net/jdk/jdk/archive/jdk-$version_jdk9.tar.bz2" -wget -c "http://icedtea.wildebeest.org/download/source/icedtea-$version_icedtea8.tar.xz" -wget -c "http://icedtea.wildebeest.org/download/source/icedtea-$version_icedtea7.tar.xz" +wget -c "https://ftp.gnu.org/gnu/make/make-$version_make42.tar.bz2" +wget -c "http://icedtea.classpath.org/download/source/icedtea-$version_icedtea8.tar.xz" +wget -c "http://icedtea.classpath.org/download/source/icedtea-$version_icedtea7.tar.xz" wget -c "https://archive.apache.org/dist/ant/source/apache-ant-$version_ant-src.tar.bz2" wget -c "https://ftp.gnu.org/gnu/gcc/gcc-$version_gcc/gcc-$version_gcc.tar.xz" wget -c "ftp://sourceware.org/pub/java/ecj-$version_ecj.jar" wget -O javac.in -c 'https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-java/gcj-jdk/files/javac.in?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d' -for part in corba.tar.bz2 hotspot.tar.bz2 jaxp.tar.bz2 jaxws.tar.bz2 jdk.tar.bz2 langtools.tar.bz2 openjdk.tar.bz2; do - wget -O "icedtea-$version_icedtea7-$part" -c "http://icedtea.wildebeest.org/download/drops/icedtea7/$version_icedtea7/$part" +for part in corba hotspot jaxp jaxws jdk langtools openjdk; do + wget -O "icedtea-$version_icedtea7-$part.tar.bz2" -c "http://icedtea.classpath.org/download/drops/icedtea7/$version_icedtea7/$part.tar.bz2" done -for part in corba.tar.xz hotspot.tar.xz jaxp.tar.xz jaxws.tar.xz jdk.tar.xz langtools.tar.xz nashorn.tar.xz openjdk.tar.xz; do - wget -O "icedtea-$version_icedtea8-$part" -c "http://icedtea.wildebeest.org/download/drops/icedtea8/$version_icedtea8/$part" +for part in corba hotspot jaxp jaxws jdk langtools nashorn openjdk; do + wget -O "icedtea-$version_icedtea8-$part.tar.xz" -c "http://icedtea.classpath.org/download/drops/icedtea8/$version_icedtea8/$part.tar.xz" done sha256sum -c ../download.sha256 diff --git a/java/download.sha256 b/java/download.sha256 index aeaf9eb..24e92c0 100644 --- a/java/download.sha256 +++ b/java/download.sha256 @@ -1,24 +1,31 @@ -fdefd01c909a69fbeab1c45a815e3a80d86351f61b992dfe2e2191d9b009aaaf apache-ant-1.9.13-src.tar.bz2 +965489b1caca437b3c60f3885f7a671c8ea88610a650b4af883bf2b39e21530c apache-ant-1.9.16-src.tar.bz2 9506e75b862f782213df61af67338eb7a23c35ff425d328affc65585477d34cd ecj-4.9.jar 7ef1796ce497e89479183702635b14bb7a46b53249209a5e0f999bebf4740945 gcc-6.5.0.tar.xz -808e6120513aa15e6b219899c1189e2d591c3984454d7db4b239556d437cf764 icedtea-2.6.17-corba.tar.bz2 -b22bca4cd64c18750b7e31c0cbf97919f9f5df610916cfa5e01e80832f139496 icedtea-2.6.17-hotspot.tar.bz2 -4aa64f80dd103ebece1aaaa6d126f751eafabb2f677537dbb25c0e0c350ad3fb icedtea-2.6.17-jaxp.tar.bz2 -0703a48a420932fb62288c211ccb27596db4e3f1cfd0701321abcca259c93e97 icedtea-2.6.17-jaxws.tar.bz2 -236180ad395eb5036cc8577aad7c4cdc2a96dc79da717fe37673a43ba26e08ee icedtea-2.6.17-jdk.tar.bz2 -b3c9130e6e813d12376cf685f1726988bad04b256390b00a5ef403a5619e6698 icedtea-2.6.17-langtools.tar.bz2 -7627e8483566b1eec4dd52c5f5052a46139529d68335c10d8ac8b0ff11215455 icedtea-2.6.17-openjdk.tar.bz2 -56360402eabda81200439485a60f0fdb3790000f957651757ea688b336cdab57 icedtea-2.6.17.tar.xz -8cd38fecfeceea5b4f342702d9d527c8485691984e3a0e1e69253ba62a58397d icedtea-3.17.0-corba.tar.xz -874a81943dbba0e00d1586f200f132c72417781f437910f448ed7af244e9e9a0 icedtea-3.17.0-hotspot.tar.xz -b987fb2ab789e55d312c9b955e441fb5f39443e3bb57967c3ea03961e68cac41 icedtea-3.17.0-jaxp.tar.xz -4c58d1e7c1aa2291d90a9f5881ef918e3ac5a947c355df4be275fedf82fe55db icedtea-3.17.0-jaxws.tar.xz -39e77d08e322c2d60af2254743867dde50bbf6bf4f39d5b46df1eb311ba14af4 icedtea-3.17.0-jdk.tar.xz -b6f28501eafc5b35396ed9e265c9f7f1e764a8cb11f910b85481048fae78bfbb icedtea-3.17.0-langtools.tar.xz -0d1dd7128a3503063589be89d775221508bfa87a31f5cf12f8497bac30cbe459 icedtea-3.17.0-nashorn.tar.xz -fec83cb0e6e0df32799c60a0980deb5ecd7612004af82c76320d1c3c1bc4baf0 icedtea-3.17.0-openjdk.tar.xz -089e85d6046775fc565cda87eba2c0245efd38b1bf713bc0b773f6dd40a49288 icedtea-3.17.0.tar.xz +b002240621be404783ed0117fe052552b4ef86adade4f2c8561ccee60ecba845 icedtea-2.6.28-corba.tar.bz2 +b6897cd5dd70af201e6ca107b2759217f92ca207643c5128dcca9e0a33b34cfc icedtea-2.6.28-hotspot.tar.bz2 +fd93e65a4692593c2100963be2c75d697a32ba51ee2c02c7e7dccc524dfb1788 icedtea-2.6.28-jaxp.tar.bz2 +23b2c621752608f03f8b61753e19b21246dd5850648bcdfa49f2c6b8cd930a2f icedtea-2.6.28-jaxws.tar.bz2 +0812269b1f8a3884d2c2659d944e20fcfb054d916a5712e405d7a54fab2b5167 icedtea-2.6.28-jdk.tar.bz2 +24799d5ebebfb1e316f9434db1db5a360ac7c86e5783ce58693536f978a0aa47 icedtea-2.6.28-langtools.tar.bz2 +78e5e89fc510280401e227d980abe30d49ea508c3eec537035481fd21a3b2c32 icedtea-2.6.28-openjdk.tar.bz2 +951188e6c0e3599de22f5cb2d95b5da9bf480763b5c8c600dae9fec88cff1735 icedtea-2.6.28.tar.xz +ab0bff4445822c5e5741088da0e83a9bc20d059b8a95fcffd5885c03969bbeeb icedtea-3.21.0-corba.tar.xz +4231a4b534b1c44aaf5e0b51833f0e40f0654dcaa41c6259cf65037eccd427ae icedtea-3.21.0-hotspot.tar.xz +c5bb8b86a8d24ca7abde8f6cf15dec18c6e9a5201e4942a7ef117b28c960f54f icedtea-3.21.0-jaxp.tar.xz +6a1244d4b8c0f78d34e44edb92a96cb127ec4b43847a6d5a176c37f392499993 icedtea-3.21.0-jaxws.tar.xz +eab27c3ad455b68b29fec2f59730d48c97f53699000da21a5e1640b825840385 icedtea-3.21.0-jdk.tar.xz +499c749aa8dbe120bde899d0712d47e3cebc7d4a0a4b4c9b6afb2b0bdda98b82 icedtea-3.21.0-langtools.tar.xz +495276d1e1e6b3a5a0d257c21b2e6349b000ac083be209a47a01b45894a65d59 icedtea-3.21.0-nashorn.tar.xz +ea3fe2097a0ce02e6781e8a0cc1b923ab52803a527cc34ef686779c04a3e1c21 icedtea-3.21.0-openjdk.tar.xz +f83ee85d39f39a304dbd6c79aaeb4fa04257fc2e61031d0a28587a1953ba2459 icedtea-3.21.0.tar.xz 3bb23cff0a6e5a7a820e19cce4b9b0f51a7b84ee9e0eeb048b463a5f3e996db0 javac.in -8df9102cd985df96733cd7b6e58136681bd6df8812698393d6fcf5049b0dc7e3 jdk-jdk-9+181.tar.bz2 374f7ae35f0a7439a40bd2c765d1f410607c75c6c1e788f1a344a42e59431f51 jdk10u-jdk-10.0.2+13.tar.bz2 -1bfcf63e0be8fc37517856e6181b97ed1d83a2436949ad21855ffc6ce14a5a0e jdk11u-jdk-11.0.9.1+1.tar.bz2 +03531735116e74644b729fc0b8663ed72f7c83ebe093c02f1887be89264d8b92 jdk11u-jdk-11.0.12+7.tar.bz2 +f7242b56e0292bc7ec5795bbaeb98552ef30d7a686cd7ca0a877fe37b399f384 jdk12u-jdk-12.0.2+10.tar.bz2 +f7b2b121f4badb9da8167bda48d74b01cee39c19c4148e0eba383812c7258c8e jdk13u-jdk-13.0.5.1+1.tar.bz2 +a2e858dcce16fe89c20e265d9735e2cf1ae68a81b79cf55deb658ffc9de44c25 jdk14u-jdk-14.0.2+12.tar.bz2 +4caca47081a23e4ec4d558f7649a9a3f0f34d300f4e6fde5767325c76214e19b jdk15u-jdk-15.0.3+3.tar.bz2 +b4a0e71e41a11175e8a7c1dba86ed5b0aa878413158c8d48813db1b64ac9536c jdk16u-jdk-16.0.2+7.tar.gz +8c076203a6f85ab916b3e54de1992bcbcc5ffe580c52b1ac8d52ca7afb9f02d1 jdk17u-jdk-17.0.1+12.tar.gz +8df9102cd985df96733cd7b6e58136681bd6df8812698393d6fcf5049b0dc7e3 jdk-jdk-9+181.tar.bz2 +d6e262bf3601b42d2b1e4ef8310029e1dcf20083c5446b4b7aa67081fdffc589 make-4.2.1.tar.bz2 diff --git a/java/files/apache-ant-1.9.16-fix-java4.patch b/java/files/apache-ant-1.9.16-fix-java4.patch new file mode 100644 index 0000000..89e210d --- /dev/null +++ b/java/files/apache-ant-1.9.16-fix-java4.patch @@ -0,0 +1,48 @@ +--- apache-ant-1.9.16.orig/src/main/org/apache/tools/ant/taskdefs/condition/IsReachable.java ++++ apache-ant-1.9.16/src/main/org/apache/tools/ant/taskdefs/condition/IsReachable.java +@@ -131,6 +131,8 @@ + return string == null || string.length() == 0; + } + ++ private static Class[] parameterTypes = {Integer.TYPE}; ++ + /** + * Evaluate the condition. + * +@@ -173,11 +175,32 @@ + log("Host address = " + address.getHostAddress(), + Project.MSG_VERBOSE); + boolean reachable; ++ //Java1.5: reachable = address.isReachable(timeout * 1000); ++ Method reachableMethod = null; + try { +- reachable = address.isReachable(timeout * SECOND); +- } catch (final IOException ioe) { +- reachable = false; +- log(ERROR_ON_NETWORK + target + ": " + ioe.toString()); ++ reachableMethod = InetAddress.class.getMethod(METHOD_NAME, ++ parameterTypes); ++ final Object[] params = new Object[1]; ++ params[0] = new Integer(timeout * SECOND); ++ try { ++ reachable = ((Boolean) reachableMethod.invoke(address, params)) ++ .booleanValue(); ++ } catch (final IllegalAccessException e) { ++ //utterly implausible, but catered for anyway ++ throw new BuildException("When calling " + reachableMethod); ++ } catch (final InvocationTargetException e) { ++ //assume this is an IOException about un readability ++ final Throwable nested = e.getTargetException(); ++ log(ERROR_ON_NETWORK + target + ": " + nested.toString()); ++ //any kind of fault: not reachable. ++ reachable = false; ++ } ++ } catch (final NoSuchMethodException e) { ++ //java1.4 ++ log("Not found: InetAddress." + METHOD_NAME, Project.MSG_VERBOSE); ++ log(MSG_NO_REACHABLE_TEST); ++ reachable = true; ++ + } + + log("host is" + (reachable ? "" : " not") + " reachable", Project.MSG_VERBOSE); diff --git a/java/files/icedtea-2.6.28-fix-bootstrap.patch b/java/files/icedtea-2.6.28-fix-bootstrap.patch new file mode 100644 index 0000000..35357fc --- /dev/null +++ b/java/files/icedtea-2.6.28-fix-bootstrap.patch @@ -0,0 +1,16 @@ +--- openjdk-boot/jdk/src/share/classes/sun/security/util/Optional.java.orig ++++ openjdk-boot/jdk/src/share/classes/sun/security/util/Optional.java +@@ -189,12 +189,7 @@ + * @throws NullPointerException if the mapping function is null + */ + public Optional map(Function mapper) { +- Objects.requireNonNull(mapper); +- if (!isPresent()) +- return empty(); +- else { +- return Optional.ofNullable(mapper.apply(value)); +- } ++ return empty(); + } + + /** diff --git a/java/icedtea7-fixes.patch b/java/files/icedtea-2.6.28-fix-includes.patch similarity index 60% rename from java/icedtea7-fixes.patch rename to java/files/icedtea-2.6.28-fix-includes.patch index a1977d0..6d131c6 100644 --- a/java/icedtea7-fixes.patch +++ b/java/files/icedtea-2.6.28-fix-includes.patch @@ -1,3 +1,4 @@ +--- openjdk/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c.orig +++ openjdk/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c @@ -41,7 +41,6 @@ #endif @@ -7,6 +8,7 @@ #include #include +--- openjdk/jdk/src/solaris/native/java/net/PlainSocketImpl.c.orig +++ openjdk/jdk/src/solaris/native/java/net/PlainSocketImpl.c @@ -43,7 +43,6 @@ #endif @@ -16,12 +18,3 @@ #endif #include "jvm.h" -+++ openjdk/jdk/make/tools/freetypecheck/Makefile -@@ -64,7 +64,6 @@ FT_LD_OPTIONS += $(LFLAGS_$(COMPILER_VER - - # Create test program - all: $(FT_TEST) -- $(FT_TEST) - - # On windows we need to copy dll to test dir to ensure it will be found - # at runtime diff --git a/java/files/jdk-10.0.2+13-fix-pointer-comparison.patch b/java/files/jdk-10.0.2+13-fix-pointer-comparison.patch new file mode 100644 index 0000000..2f799cb --- /dev/null +++ b/java/files/jdk-10.0.2+13-fix-pointer-comparison.patch @@ -0,0 +1,11 @@ +--- jdk10u-jdk-10.0.2+13.orig/src/hotspot/os/linux/os_linux.cpp ++++ jdk10u-jdk-10.0.2+13/src/hotspot/os/linux/os_linux.cpp +@@ -2155,7 +2155,7 @@ + } + + p = OSContainer::cpu_cpuset_memory_nodes(); +- if (p < 0) ++ if (p < (void *)0) + st->print("cpu_memory_nodes() failed\n"); + else { + st->print("cpu_memory_nodes: %s\n", p); diff --git a/java/files/jdk-9+181-fix-pointer-comparison.patch b/java/files/jdk-9+181-fix-pointer-comparison.patch new file mode 100644 index 0000000..ca4bda7 --- /dev/null +++ b/java/files/jdk-9+181-fix-pointer-comparison.patch @@ -0,0 +1,22 @@ +--- jdk-jdk-9+181.orig/hotspot/src/share/vm/memory/virtualspace.cpp ++++ jdk-jdk-9+181/hotspot/src/share/vm/memory/virtualspace.cpp +@@ -581,7 +581,7 @@ + assert(markOopDesc::encode_pointer_as_mark(&_base[size])->decode_pointer() == &_base[size], + "area must be distinguishable from marks for mark-sweep"); + +- if (base() > 0) { ++ if (base() > (void *)0) { + MemTracker::record_virtual_memory_type((address)base(), mtJavaHeap); + } + } +--- jdk-jdk-9+181.orig/hotspot/src/share/vm/opto/lcm.cpp ++++ jdk-jdk-9+181/hotspot/src/share/vm/opto/lcm.cpp +@@ -39,7 +39,7 @@ + // Check whether val is not-null-decoded compressed oop, + // i.e. will grab into the base of the heap if it represents NULL. + static bool accesses_heap_base_zone(Node *val) { +- if (Universe::narrow_oop_base() > 0) { // Implies UseCompressedOops. ++ if (Universe::narrow_oop_base() > (void *)0) { // Implies UseCompressedOops. + if (val && val->is_Mach()) { + if (val->as_Mach()->ideal_Opcode() == Op_DecodeN) { + // This assumes all Decodes with TypePtr::NotNull are matched to nodes that diff --git a/java/icedtea7-newerror.txt b/java/icedtea7-newerror.txt deleted file mode 100644 index 1bb24f7..0000000 --- a/java/icedtea7-newerror.txt +++ /dev/null @@ -1,7 +0,0 @@ ----------- -1. ERROR in /root/java/build/icedtea-2.6.19/openjdk-boot/jdk/src/share/classes/sun/security/util/Optional.java (at line 196) - return Optional.ofNullable(mapper.apply(value)); - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Type mismatch: cannot convert from Optional to Optional ----------- -1 problem (1 error)gmake[6]: *** [/root/java/build/icedtea-2.6.19/openjdk-boot/jdk/make/common/Rules.gmk:254: .compile.classlist] Error 255 diff --git a/java/strip.sh b/java/strip.sh new file mode 100755 index 0000000..f9dc10e --- /dev/null +++ b/java/strip.sh @@ -0,0 +1,3 @@ +#!/bin/sh +set -eu +find "$1" -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs -L1 -t strip --strip-unneeded