From 7233939a7decfb9f247bc306f4e43d2e562a2312 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Sep 29 2020 07:02:39 +0000 Subject: import java-1.8.0-openjdk-1.8.0.262.b10-1.el7 --- diff --git a/SOURCES/jdk8186464-rh1433262-zip64_failure.patch b/SOURCES/jdk8186464-rh1433262-zip64_failure.patch new file mode 100644 index 0000000..026227f --- /dev/null +++ b/SOURCES/jdk8186464-rh1433262-zip64_failure.patch @@ -0,0 +1,304 @@ +# HG changeset patch +# User sherman +# Date 1505950914 25200 +# Wed Sep 20 16:41:54 2017 -0700 +# Node ID 723486922bfe4c17e3f5c067ce5e97229842fbcd +# Parent c8ac05bbe47771b3dafa2e7fc9a95d86d68d7c07 +8186464: ZipFile cannot read some InfoZip ZIP64 zip files +Reviewed-by: martin + +diff --git openjdk.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipConstants.java openjdk/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipConstants.java +--- openjdk.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipConstants.java ++++ openjdk/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipConstants.java +@@ -204,6 +204,17 @@ + return LG(b, 0); + } + ++ private static boolean pkSigAt(byte[] b, int n, int b1, int b2) { ++ return b[n] == 'P' & b[n + 1] == 'K' & b[n + 2] == b1 & b[n + 3] == b2; ++ } ++ ++ static boolean cenSigAt(byte[] b, int n) { return pkSigAt(b, n, 1, 2); } ++ static boolean locSigAt(byte[] b, int n) { return pkSigAt(b, n, 3, 4); } ++ static boolean endSigAt(byte[] b, int n) { return pkSigAt(b, n, 5, 6); } ++ static boolean extSigAt(byte[] b, int n) { return pkSigAt(b, n, 7, 8); } ++ static boolean end64SigAt(byte[] b, int n) { return pkSigAt(b, n, 6, 6); } ++ static boolean locator64SigAt(byte[] b, int n) { return pkSigAt(b, n, 6, 7); } ++ + // local file (LOC) header fields + static final long LOCSIG(byte[] b) { return LG(b, 0); } // signature + static final int LOCVER(byte[] b) { return SH(b, 4); } // version needed to extract +diff --git openjdk.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java openjdk/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java +--- openjdk.orig/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java ++++ openjdk/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java +@@ -93,6 +93,7 @@ + private final boolean createNew; // create a new zip if not exists + private static final boolean isWindows = + System.getProperty("os.name").startsWith("Windows"); ++ private final boolean forceEnd64; + + ZipFileSystem(ZipFileSystemProvider provider, + Path zfpath, +@@ -109,12 +110,13 @@ + if (this.defaultDir.charAt(0) != '/') + throw new IllegalArgumentException("default dir should be absolute"); + ++ this.forceEnd64 = "true".equals(env.get("forceZIP64End")); + this.provider = provider; + this.zfpath = zfpath; + if (Files.notExists(zfpath)) { + if (createNew) { + try (OutputStream os = Files.newOutputStream(zfpath, CREATE_NEW, WRITE)) { +- new END().write(os, 0); ++ new END().write(os, 0, forceEnd64); + } + } else { + throw new FileSystemNotFoundException(zfpath.toString()); +@@ -1011,28 +1013,36 @@ + end.cenoff = ENDOFF(buf); + end.comlen = ENDCOM(buf); + end.endpos = pos + i; +- if (end.cenlen == ZIP64_MINVAL || +- end.cenoff == ZIP64_MINVAL || +- end.centot == ZIP64_MINVAL32) +- { +- // need to find the zip64 end; +- byte[] loc64 = new byte[ZIP64_LOCHDR]; +- if (readFullyAt(loc64, 0, loc64.length, end.endpos - ZIP64_LOCHDR) +- != loc64.length) { +- return end; +- } +- long end64pos = ZIP64_LOCOFF(loc64); +- byte[] end64buf = new byte[ZIP64_ENDHDR]; +- if (readFullyAt(end64buf, 0, end64buf.length, end64pos) +- != end64buf.length) { +- return end; +- } +- // end64 found, re-calcualte everything. +- end.cenlen = ZIP64_ENDSIZ(end64buf); +- end.cenoff = ZIP64_ENDOFF(end64buf); +- end.centot = (int)ZIP64_ENDTOT(end64buf); // assume total < 2g +- end.endpos = end64pos; ++ // try if there is zip64 end; ++ byte[] loc64 = new byte[ZIP64_LOCHDR]; ++ if (end.endpos < ZIP64_LOCHDR || ++ readFullyAt(loc64, 0, loc64.length, end.endpos - ZIP64_LOCHDR) ++ != loc64.length || ++ !locator64SigAt(loc64, 0)) { ++ return end; ++ } ++ long end64pos = ZIP64_LOCOFF(loc64); ++ byte[] end64buf = new byte[ZIP64_ENDHDR]; ++ if (readFullyAt(end64buf, 0, end64buf.length, end64pos) ++ != end64buf.length || ++ !end64SigAt(end64buf, 0)) { ++ return end; + } ++ // end64 found, ++ long cenlen64 = ZIP64_ENDSIZ(end64buf); ++ long cenoff64 = ZIP64_ENDOFF(end64buf); ++ long centot64 = ZIP64_ENDTOT(end64buf); ++ // double-check ++ if (cenlen64 != end.cenlen && end.cenlen != ZIP64_MINVAL || ++ cenoff64 != end.cenoff && end.cenoff != ZIP64_MINVAL || ++ centot64 != end.centot && end.centot != ZIP64_MINVAL32) { ++ return end; ++ } ++ // to use the end64 values ++ end.cenlen = cenlen64; ++ end.cenoff = cenoff64; ++ end.centot = (int)centot64; // assume total < 2g ++ end.endpos = end64pos; + return end; + } + } +@@ -1198,7 +1208,7 @@ + + // sync the zip file system, if there is any udpate + private void sync() throws IOException { +- //System.out.printf("->sync(%s) starting....!%n", toString()); ++ // System.out.printf("->sync(%s) starting....!%n", toString()); + // check ex-closer + if (!exChClosers.isEmpty()) { + for (ExChannelCloser ecc : exChClosers) { +@@ -1289,7 +1299,7 @@ + } + end.centot = elist.size(); + end.cenlen = written - end.cenoff; +- end.write(os, written); ++ end.write(os, written, forceEnd64); + } + if (!streams.isEmpty()) { + // +@@ -1727,8 +1737,8 @@ + long endpos; + int disktot; + +- void write(OutputStream os, long offset) throws IOException { +- boolean hasZip64 = false; ++ void write(OutputStream os, long offset, boolean forceEnd64) throws IOException { ++ boolean hasZip64 = forceEnd64; // false; + long xlen = cenlen; + long xoff = cenoff; + if (xlen >= ZIP64_MINVAL) { +@@ -1753,8 +1763,8 @@ + writeShort(os, 45); // version needed to extract + writeInt(os, 0); // number of this disk + writeInt(os, 0); // central directory start disk +- writeLong(os, centot); // number of directory entires on disk +- writeLong(os, centot); // number of directory entires ++ writeLong(os, centot); // number of directory entries on disk ++ writeLong(os, centot); // number of directory entries + writeLong(os, cenlen); // length of central directory + writeLong(os, cenoff); // offset of central directory + +diff --git a/src/share/native/javopenjdk.orig/jdk/util/zip/zip_util.c openjdk/jdk/src/share/native/java/util/zip/zip_util.c +--- openjdk.orig/jdk/src/share/native/java/util/zip/zip_util.c ++++ openjdk/jdk/src/share/native/java/util/zip/zip_util.c +@@ -383,6 +383,9 @@ + { + char loc64[ZIP64_LOCHDR]; + jlong end64pos; ++ if (endpos < ZIP64_LOCHDR) { ++ return -1; ++ } + if (readFullyAt(zip->zfd, loc64, ZIP64_LOCHDR, endpos - ZIP64_LOCHDR) == -1) { + return -1; // end64 locator not found + } +@@ -545,6 +548,7 @@ + { + /* Following are unsigned 32-bit */ + jlong endpos, end64pos, cenpos, cenlen, cenoff; ++ jlong cenlen64, cenoff64, centot64; + /* Following are unsigned 16-bit */ + jint total, tablelen, i, j; + unsigned char *cenbuf = NULL; +@@ -572,13 +576,20 @@ + cenlen = ENDSIZ(endbuf); + cenoff = ENDOFF(endbuf); + total = ENDTOT(endbuf); +- if (cenlen == ZIP64_MAGICVAL || cenoff == ZIP64_MAGICVAL || +- total == ZIP64_MAGICCOUNT) { +- unsigned char end64buf[ZIP64_ENDHDR]; +- if ((end64pos = findEND64(zip, end64buf, endpos)) != -1) { +- cenlen = ZIP64_ENDSIZ(end64buf); +- cenoff = ZIP64_ENDOFF(end64buf); +- total = (jint)ZIP64_ENDTOT(end64buf); ++ unsigned char end64buf[ZIP64_ENDHDR]; ++ if ((end64pos = findEND64(zip, end64buf, endpos)) != -1) { ++ // end64 candidate found, ++ cenlen64 = ZIP64_ENDSIZ(end64buf); ++ cenoff64 = ZIP64_ENDOFF(end64buf); ++ centot64 = ZIP64_ENDTOT(end64buf); ++ // double-check ++ if ((cenlen64 == cenlen || cenlen == ZIP64_MAGICVAL) && ++ (cenoff64 == cenoff || cenoff == ZIP64_MAGICVAL) && ++ (centot64 == total || total == ZIP64_MAGICCOUNT)) { ++ // to use the end64 values ++ cenlen = cenlen64; ++ cenoff = cenoff64; ++ total = (jint)centot64; + endpos = end64pos; + endhdrlen = ZIP64_ENDHDR; + } +diff --git a/test/javopenjdk.orig/jdk/util/zip/ZipFile/ReadZip.java openjdk/jdk/test/java/util/zip/ZipFile/ReadZip.java +--- openjdk.orig/jdk/test/java/util/zip/ZipFile/ReadZip.java ++++ openjdk/jdk/test/java/util/zip/ZipFile/ReadZip.java +@@ -22,7 +22,7 @@ + */ + + /* @test +- * @bug 4241361 4842702 4985614 6646605 5032358 6923692 6233323 8144977 8184993 ++ * @bug 4241361 4842702 4985614 6646605 5032358 6923692 6233323 8144977 8184993 8186464 + * @summary Make sure we can read a zip file. + * @run main/othervm ReadZip + * @run main/othervm -Djdk.util.zip.ensureTrailingSlash=true ReadZip +@@ -30,12 +30,24 @@ + */ + + import java.io.*; ++import java.net.URI; + import java.nio.file.Files; ++import java.nio.file.FileSystem; ++import java.nio.file.FileSystems; ++import java.nio.file.Path; + import java.nio.file.Paths; + import java.nio.file.StandardCopyOption; + import java.nio.file.StandardOpenOption; ++import java.util.Collections; ++import java.util.HashMap; ++import java.util.List; ++import java.util.Map; + import java.util.zip.*; + ++import sun.misc.IOUtils; ++ ++import static java.nio.charset.StandardCharsets.US_ASCII; ++ + public class ReadZip { + private static void unreached (Object o) + throws Exception +@@ -143,8 +155,6 @@ + newZip.delete(); + } + +- +- + // Throw a FNF exception when read a non-existing zip file + try { unreached (new ZipFile( + new File(System.getProperty("test.src", "."), +@@ -152,5 +162,54 @@ + + String.valueOf(new java.util.Random().nextInt()) + + ".zip"))); + } catch (FileNotFoundException fnfe) {} ++ ++ // read a zip file with ZIP64 end ++ Path path = Paths.get(System.getProperty("test.dir", ""), "end64.zip"); ++ try { ++ URI uri = URI.create("jar:" + path.toUri()); ++ Map env = new HashMap<>(); ++ env.put("create", "true"); ++ env.put("forceZIP64End", "true"); ++ try (FileSystem fs = FileSystems.newFileSystem(uri, env)) { ++ Files.write(fs.getPath("hello"), "hello".getBytes()); ++ } ++ try (ZipFile zf = new ZipFile(path.toFile())) { ++ if (!"hello".equals(new String(IOUtils.readAllBytes(zf.getInputStream(new ZipEntry("hello"))), ++ US_ASCII))) ++ throw new RuntimeException("zipfile: read entry failed"); ++ } catch (IOException x) { ++ throw new RuntimeException("zipfile: zip64 end failed"); ++ } ++ try (FileSystem fs = FileSystems.newFileSystem(uri, Collections.emptyMap())) { ++ if (!"hello".equals(new String(Files.readAllBytes(fs.getPath("hello"))))) ++ throw new RuntimeException("zipfs: read entry failed"); ++ } catch (IOException x) { ++ throw new RuntimeException("zipfile: zip64 end failed"); ++ } ++ } finally { ++ Files.deleteIfExists(path); ++ } ++ ++ // read a zip file created via "echo hello | zip dst.zip -", which uses ++ // ZIP64 end record ++ if (Files.notExists(Paths.get("/usr/bin/zip"))) ++ return; ++ try { ++ Process zip = new ProcessBuilder("zip", path.toString().toString(), "-").start(); ++ OutputStream os = zip.getOutputStream(); ++ os.write("hello".getBytes(US_ASCII)); ++ os.close(); ++ zip.waitFor(); ++ if (zip.exitValue() == 0 && Files.exists(path)) { ++ try (ZipFile zf = new ZipFile(path.toFile())) { ++ if (!"hello".equals(new String(IOUtils.readAllBytes(zf.getInputStream(new ZipEntry("-")))))) ++ throw new RuntimeException("zipfile: read entry failed"); ++ } catch (IOException x) { ++ throw new RuntimeException("zipfile: zip64 end failed"); ++ } ++ } ++ } finally { ++ Files.deleteIfExists(path); ++ } + } + } diff --git a/SPECS/java-1.8.0-openjdk.spec b/SPECS/java-1.8.0-openjdk.spec index 6f3352c..8483fbf 100644 --- a/SPECS/java-1.8.0-openjdk.spec +++ b/SPECS/java-1.8.0-openjdk.spec @@ -31,6 +31,10 @@ %global ppc64be ppc64 ppc64p7 %global multilib_arches %{power64} sparc64 x86_64 %global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} +%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} +# MetaspaceShared::generate_vtable_methods not implemented for PPC JIT +# See https://bugzilla.redhat.com/show_bug.cgi?id=513605 +%global share_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %global jfr_arches x86_64 sparcv9 sparc64 %{aarch64} %{power64} # By default, we build a debug build during main build on JIT architectures @@ -59,11 +63,8 @@ %global bootstrap_build 1 %endif -%if %{bootstrap_build} -%global release_targets bootcycle-images zip-docs -%else +%global bootstrap_targets images %global release_targets images zip-docs -%endif # No docs nor bootcycle for debug builds %global debug_targets images @@ -199,7 +200,7 @@ %global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u}) # eg jdk8u60-b27 -> b27 %global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-}) -%global rpmrelease 0 +%global rpmrelease 1 # Define milestone (EA for pre-releases, GA ("fcs") for releases) # Release will be (where N is usually a number starting at 1): # - 0.N%%{?extraver}%%{?dist} for EA releases, @@ -227,7 +228,7 @@ # images stub %global jdkimage j2sdk-image # output dir stub -%global buildoutputdir() %{expand:%{top_level_dir_name}/build/jdk8.build%1} +%define buildoutputdir() %{expand:build/jdk8.build%1} #we can copy the javadoc to not arched dir, or make it not noarch %global uniquejavadocdir() %{expand:%{fullversion}%1} #main id and dir of this jdk @@ -271,13 +272,9 @@ exit 0 %global post_headless() %{expand: -%ifarch %{jit_arches} -# MetaspaceShared::generate_vtable_methods not implemented for PPC JIT -%ifnarch %{power64} -#see https://bugzilla.redhat.com/show_bug.cgi?id=513605 +%ifarch %{share_arches} %{jrebindir %%1}/java -Xshare:dump >/dev/null 2>/dev/null %endif -%endif PRIORITY=%{priority} if [ "%1" == %{debug_suffix} ]; then @@ -591,12 +588,10 @@ exit 0 %{_mandir}/man1/unpack200-%{uniquesuffix %%1}.1* %{_mandir}/man1/policytool-%{uniquesuffix %%1}.1* %config(noreplace) %{_jvmdir}/%{jredir %%1}/lib/security/nss.cfg -%ifarch %{jit_arches} -%ifnarch %{power64} +%ifarch %{share_arches} %attr(444, root, root) %ghost %{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/server/classes.jsa %attr(444, root, root) %ghost %{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/client/classes.jsa %endif -%endif %{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/server/ %{_jvmdir}/%{jredir %%1}/lib/%{archinstall}/client/ } @@ -1017,6 +1012,8 @@ Patch202: jdk8035341-allow_using_system_installed_libpng.patch # 8042159: Allow using a system-installed lcms2 Patch203: jdk8042159-allow_using_system_installed_lcms2-root.patch Patch204: jdk8042159-allow_using_system_installed_lcms2-jdk.patch +# JDK-8186464, RH1433262: ZipFile cannot read some InfoZip ZIP64 zip files +Patch12: jdk8186464-rh1433262-zip64_failure.patch ############################################# # @@ -1092,14 +1089,6 @@ BuildRequires: pkgconfig BuildRequires: xorg-x11-proto-devel BuildRequires: zip BuildRequires: unzip -%ifarch %{arm} -BuildRequires: devtoolset-7-build -BuildRequires: devtoolset-7-binutils -BuildRequires: devtoolset-7-gcc -BuildRequires: devtoolset-7-gcc-c++ -BuildRequires: devtoolset-7-gdb -%endif - # Use OpenJDK 7 where available (on RHEL) to avoid # having to use the rhel-7.x-java-unsafe-candidate hack %if ! 0%{?fedora} && 0%{?rhel} <= 7 @@ -1404,6 +1393,7 @@ sh %{SOURCE12} %patch575 %patch577 %patch541 +%patch12 # RPM-only fixes %patch539 @@ -1464,10 +1454,6 @@ sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} > nss.cfg %build -%ifarch %{arm} -%{?enable_devtoolset7:%{enable_devtoolset7}} -%endif - # How many CPU's do we have? export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :) export NUM_PROC=${NUM_PROC:-1} @@ -1491,9 +1477,6 @@ EXTRA_CPP_FLAGS="%ourcppflags" # fix rpmlint warnings EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing" %endif -%ifarch %{arm} -EXTRA_CFLAGS="$EXTRA_CFLAGS -Wno-nonnull" -%endif EXTRA_ASFLAGS="${EXTRA_CFLAGS}" export EXTRA_CFLAGS EXTRA_ASFLAGS @@ -1501,20 +1484,20 @@ export EXTRA_CFLAGS EXTRA_ASFLAGS bash ./autogen.sh ) -for suffix in %{build_loop} ; do -if [ "$suffix" = "%{debug_suffix}" ] ; then -debugbuild=%{debugbuild_parameter} -else -debugbuild=%{normalbuild_parameter} -fi +function buildjdk() { + local outputdir=${1} + local buildjdk=${2} + local maketargets=${3} + local debuglevel=${4} -# Variable used in hs_err hook on build failures -top_dir_abs_path=$(pwd)/%{top_level_dir_name} + local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name} + # Variable used in hs_err hook on build failures + local top_builddir_abs_path=$(pwd)/${outputdir} -mkdir -p %{buildoutputdir $suffix} -pushd %{buildoutputdir $suffix} + mkdir -p ${outputdir} + pushd ${outputdir} -bash ../../configure \ + bash ${top_srcdir_abs_path}/configure \ %ifarch %{jfr_arches} --enable-jfr \ %endif @@ -1525,8 +1508,8 @@ bash ../../configure \ --with-milestone=%{milestone} \ --with-update-version=%{updatever} \ --with-build-number=%{buildver} \ - --with-boot-jdk=/usr/lib/jvm/java-openjdk \ - --with-debug-level=$debugbuild \ + --with-boot-jdk=${buildjdk} \ + --with-debug-level=${debuglevel} \ --enable-unlimited-crypto \ --with-zlib=system \ --with-libjpeg=system \ @@ -1540,8 +1523,43 @@ bash ../../configure \ --with-extra-ldflags="%{ourldflags}" \ --with-num-cores="$NUM_PROC" -cat spec.gmk -cat hotspot-spec.gmk + cat spec.gmk + cat hotspot-spec.gmk + + make \ + JAVAC_FLAGS=-g \ + LOG=trace \ + SCTP_WERROR= \ + ${maketargets} || ( pwd; find ${top_srcdir_abs_path} ${top_builddir_abs_path} -name "hs_err_pid*.log" | xargs cat && false ) + + # the build (erroneously) removes read permissions from some jars + # this is a regression in OpenJDK 7 (our compiler): + # http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437 + find images/%{jdkimage} -iname '*.jar' -exec chmod ugo+r {} \; + chmod ugo+r images/%{jdkimage}/lib/ct.sym + + # remove redundant *diz and *debuginfo files + find images/%{jdkimage} -iname '*.diz' -exec rm -v {} \; + find images/%{jdkimage} -iname '*.debuginfo' -exec rm -v {} \; + + # Build screws up permissions on binaries + # https://bugs.openjdk.java.net/browse/JDK-8173610 + find images/%{jdkimage} -iname '*.so' -exec chmod +x {} \; + find images/%{jdkimage}/bin/ -exec chmod +x {} \; + + popd >& /dev/null +} + +for suffix in %{build_loop} ; do +if [ "$suffix" = "%{debug_suffix}" ] ; then +debugbuild=%{debugbuild_parameter} +else +debugbuild=%{normalbuild_parameter} +fi + +systemjdk=/usr/lib/jvm/java-openjdk +builddir=%{buildoutputdir $suffix} +bootbuilddir=boot${builddir} # Debug builds don't need same targets as release for # build speed-up @@ -1549,27 +1567,14 @@ maketargets="%{release_targets}" if echo $debugbuild | grep -q "debug" ; then maketargets="%{debug_targets}" fi -make \ - JAVAC_FLAGS=-g \ - LOG=trace \ - $maketargets || ( pwd; find $top_dir_abs_path -name "hs_err_pid*.log" | xargs cat && false ) - -# the build (erroneously) removes read permissions from some jars -# this is a regression in OpenJDK 7 (our compiler): -# http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437 -find images/%{jdkimage} -iname '*.jar' -exec chmod ugo+r {} \; -chmod ugo+r images/%{jdkimage}/lib/ct.sym -# remove redundant *diz and *debuginfo files -find images/%{jdkimage} -iname '*.diz' -exec rm {} \; -find images/%{jdkimage} -iname '*.debuginfo' -exec rm {} \; - -# Build screws up permissions on binaries -# https://bugs.openjdk.java.net/browse/JDK-8173610 -find images/%{jdkimage} -iname '*.so' -exec chmod +x {} \; -find images/%{jdkimage}/bin/ -exec chmod +x {} \; - -popd >& /dev/null +%if %{bootstrap_build} +buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild} +buildjdk ${builddir} $(pwd)/${bootbuilddir}/images/%{jdkimage} "${maketargets}" ${debugbuild} +rm -rf ${bootbuilddir} +%else +buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild} +%endif # Install nss.cfg right away as we will be using the JRE above export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{jdkimage} @@ -2098,87 +2103,105 @@ require "copy_jdk_configs.lua" %endif %changelog -* Sun Jul 12 2020 Andrew Hughes - 1:1.8.0.262.b10-0 +* Sun Jul 12 2020 Andrew Hughes - 1:1.8.0.262.b10-1 - Update to aarch64-shenandoah-jdk8u262-b10. - Switch to GA mode for final release. - Update release notes for 8u262 release. -- Fix typo in jfr_arches which leads to ppc64 being wrongly excluded. - Split JDK-8042159 patch into per-repo patches as upstream. - Update JDK-8042159 JDK patch to apply after JDK-8238002 changes to Awt2dLibraries.gmk - Resolves: rhbz#1838811 -* Sun Jul 12 2020 Andrew Hughes - 1:1.8.0.262.b09-0.1.ea +* Sat Jul 11 2020 Andrew Hughes - 1:1.8.0.262.b09-0.5.ea +- Restructure the build so a minimal initial build is then used for the final build (with docs) +- This reduces pressure on the system JDK and ensures the JDK being built can do a full build +- Introduce jfr_arches for architectures which support JFR. +- Introduce sa_arches for architectures which support the serviceability agent. +- Introduce share_arches for architectures which support class sharing (-Xshare:dump). +- Resolves: rhbz#1838811 + +* Fri Jul 10 2020 Andrew Hughes - 1:1.8.0.262.b09-0.4.ea +- With JDK-8248399 fixed, a broken jfr binary is no longer installed on architectures without JFR. +- Resolves: rhbz#1838811 + +* Thu Jul 09 2020 Andrew Hughes - 1:1.8.0.262.b09-0.3.ea - Update to aarch64-shenandoah-jdk8u262-b09-shenandoah-merge-2020-07-03 - Resolves: rhbz#1838811 -* Sat Jul 11 2020 Andrew Hughes - 1:1.8.0.262.b09-0.0.ea +* Sun Jul 05 2020 Andrew Hughes - 1:1.8.0.262.b09-0.2.ea +- Sync alt-java support with java-11-openjdk version. +- Resolves: rhbz#1838811 + +* Mon Jun 29 2020 Andrew Hughes - 1:1.8.0.262.b09-0.1.ea - Update to aarch64-shenandoah-jdk8u262-b09. -- With JDK-8248399 fixed, a broken jfr binary is no longer installed on architectures without JFR. - Resolves: rhbz#1838811 -* Sat Jul 11 2020 Andrew Hughes - 1:1.8.0.262.b08-0.0.ea +* Fri Jun 26 2020 Andrew Hughes - 1:1.8.0.262.b08-0.1.ea - Update to aarch64-shenandoah-jdk8u262-b08. - Resolves: rhbz#1838811 -* Sat Jul 11 2020 Andrew Hughes - 1:1.8.0.262.b07-0.2.ea +* Tue Jun 23 2020 Andrew Hughes - 1:1.8.0.262.b07-0.3.ea - Update to aarch64-shenandoah-jdk8u262-b07-shenandoah-merge-2020-06-18. - Resolves: rhbz#1838811 -* Sat Jul 11 2020 Andrew Hughes - 1:1.8.0.262.b07-0.1.ea -- Sync alt-java support with java-11-openjdk version. -- Resolves: rhbz#1838811 - -* Sat Jul 11 2020 Jiri Vanek - 1:1.8.0.262.b07-0.1.ea +* Fri Jun 19 2020 Jiri Vanek - 1:1.8.0.262.b07-0.2.ea - Created copy of java as alt-java and adapted alternatives and man pages - Resolves: rhbz#1838811 -* Fri Jul 10 2020 Andrew Hughes - 1:1.8.0.262.b07-0.0.ea +* Tue Jun 16 2020 Andrew Hughes - 1:1.8.0.262.b07-0.1.ea - Update to aarch64-shenandoah-jdk8u262-b07. -- Require tzdata 2020a so system tzdata matches resource updates in b07 +- Drop JDK-8243541 backport now applied upstream. - Resolves: rhbz#1838811 -* Thu Jul 09 2020 Andrew Hughes - 1:1.8.0.262.b06-0.1.ea +* Tue Jun 09 2020 Andrew Hughes - 1:1.8.0.262.b06-0.2.ea - Sync SystemTap & desktop files with upstream IcedTea release 3.15.0, removing previous workarounds - Sync stapinstall handling with RHEL 8 implementation - Need to support noarch for creating source RPMs for non-scratch builds. - Resolves: rhbz#1838811 -* Wed Jul 08 2020 Andrew Hughes - 1:1.8.0.262.b06-0.0.ea +* Mon Jun 08 2020 Andrew Hughes - 1:1.8.0.262.b06-0.1.ea - Update to aarch64-shenandoah-jdk8u262-b06. - Resolves: rhbz#1838811 -* Fri Jul 03 2020 Andrew Hughes - 1:1.8.0.262.b05-0.1.ea +* Mon Jun 08 2020 Andrew Hughes - 1:1.8.0.262.b05-0.4.ea +- Backport JDK-8186464 so ZIP64 archives < 4GB can be read. +- Resolves: rhbz#1433262 + +* Mon Jun 08 2020 Andrew Hughes - 1:1.8.0.262.b05-0.3.ea - Update to aarch64-shenandoah-jdk8u262-b05-shenandoah-merge-2020-06-04. - Resolves: rhbz#1838811 -* Thu Jul 02 2020 Andrew Hughes - 1:1.8.0.262.b05-0.0.ea +* Mon Jun 08 2020 Andrew Hughes - 1:1.8.0.262.b05-0.2.ea +- Backport JDK-8243541 & require tzdata 2020a as latest tzdata package needs resource updates +- Resolves: rhbz#1838229 + +* Sun Jun 07 2020 Andrew Hughes - 1:1.8.0.262.b05-0.1.ea - Update to aarch64-shenandoah-jdk8u262-b05. +- Remove backports of JDK-8227269 & JDK-8241750 included upstream in 8u262-b05. - Resolves: rhbz#1838811 -* Tue Jun 30 2020 Andrew Hughes - 1:1.8.0.262.b04-0.0.ea +* Sun Jun 07 2020 Andrew Hughes - 1:1.8.0.262.b04-0.1.ea - Update to aarch64-shenandoah-jdk8u262-b04. - Resolves: rhbz#1838811 -* Mon Jun 29 2020 Andrew Hughes - 1:1.8.0.262.b03-0.1.ea +* Sun Jun 07 2020 Andrew Hughes - 1:1.8.0.262.b03-0.2.ea - Update to aarch64-shenandoah-jdk8u262-b03-shenandoah-merge-2020-05-20. - Resolves: rhbz#1838811 -* Sat Jun 27 2020 Andrew Hughes - 1:1.8.0.262.b03-0.0.ea +* Sat Jun 06 2020 Andrew Hughes - 1:1.8.0.262.b03-0.1.ea - Update to aarch64-shenandoah-jdk8u262-b03. - Resolves: rhbz#1838811 -* Mon Jun 22 2020 Andrew Hughes - 1:1.8.0.262.b02-0.1.ea +* Sat Jun 06 2020 Andrew Hughes - 1:1.8.0.262.b02-0.2.ea - Enable JFR in our builds, ahead of upstream default. - Only enable JFR for JIT builds, as it is not supported with Zero. - Turn off JFR on x86 for now due to assert(SerializePageShiftCount == count) crash. -- Introduce jfr_arches for architectures which support JFR. - Resolves: rhbz#1838811 -* Wed Jun 03 2020 Andrew Hughes - 1:1.8.0.262.b02-0.0.ea +* Wed Jun 03 2020 Andrew Hughes - 1:1.8.0.262.b02-0.1.ea - Update to aarch64-shenandoah-jdk8u262-b02. - Resolves: rhbz#1838811 -* Sun May 24 2020 Andrew Hughes - 1:1.8.0.262.b01-0.0.ea +* Sun May 24 2020 Andrew Hughes - 1:1.8.0.262.b01-0.1.ea - Update to aarch64-shenandoah-jdk8u262-b01. - Switch to EA mode. - Adjust JDK-8143245/PR3548 patch following context changes due to JDK-8203287 for JFR @@ -2186,46 +2209,50 @@ require "copy_jdk_configs.lua" - Add recently added binaries to alternatives set (clhsdb, hsdb, jfr) - Resolves: rhbz#1838811 -* Tue Apr 14 2020 Andrew Hughes - 1:1.8.0.252.b09-2 +* Sat May 23 2020 Andrew John Hughes - 1:1.8.0.252.b09-4 +- Add backports of JDK-8227269 & JDK-8241750 to resolve slow class loading with JDWP enabled. +- Resolves: rhbz#1751985 + +* Wed Apr 15 2020 Andrew Hughes - 1:1.8.0.252.b09-3 - Add release notes. - Mark license files with appropriate macro. - Resolves: rhbz#1810557 -* Sun Apr 12 2020 Andrew Hughes - 1:1.8.0.252.b09-1 -- Make use of --with-extra-asflags introduced in jdk8u252-b01. -- Resolves: rhbz#1810557 - -* Mon Apr 06 2020 Andrew Hughes - 1:1.8.0.252.b09-0 +* Wed Apr 15 2020 Andrew Hughes - 1:1.8.0.252.b09-3 - Update to aarch64-shenandoah-jdk8u242-b09. - Switch to GA mode for final release. - Resolves: rhbz#1810557 -* Fri Mar 27 2020 Andrew Hughes - 1:1.8.0.252.b08-0.0.ea +* Sun Apr 12 2020 Andrew Hughes - 1:1.8.0.252.b08-0.2.ea +- Make use of --with-extra-asflags introduced in jdk8u252-b01. +- Resolves: rhbz#1810557 + +* Fri Mar 27 2020 Andrew Hughes - 1:1.8.0.252.b08-0.1.ea - Update to aarch64-shenandoah-jdk8u252-b08. - Resolves: rhbz#1810557 -* Tue Mar 24 2020 Andrew Hughes - 1:1.8.0.252.b07-0.0.ea +* Tue Mar 24 2020 Andrew Hughes - 1:1.8.0.252.b07-0.1.ea - Update to aarch64-shenandoah-jdk8u252-b07. - Resolves: rhbz#1810557 -* Mon Mar 16 2020 Andrew Hughes - 1:1.8.0.252.b06-0.0.ea +* Mon Mar 16 2020 Andrew Hughes - 1:1.8.0.252.b06-0.1.ea - Update to aarch64-shenandoah-jdk8u252-b06. - Resolves: rhbz#1810557 -* Fri Feb 28 2020 Andrew Hughes - 1:1.8.0.252.b05-0.0.ea +* Fri Feb 28 2020 Andrew Hughes - 1:1.8.0.252.b05-0.1.ea - Update to aarch64-shenandoah-jdk8u252-b05. - Resolves: rhbz#1810557 -* Mon Feb 24 2020 Andrew Hughes - 1:1.8.0.252.b04-0.0.ea +* Mon Feb 24 2020 Andrew Hughes - 1:1.8.0.252.b04-0.1.ea - Update to aarch64-shenandoah-jdk8u252-b04. - Resolves: rhbz#1810557 -* Wed Feb 19 2020 Andrew Hughes - 1:1.8.0.252.b03-0.0.ea +* Wed Feb 19 2020 Andrew Hughes - 1:1.8.0.252.b03-0.1.ea - Update to aarch64-shenandoah-jdk8u252-b03. - Adjust PR2974/RH1337583 & PR3083/RH1346460 following context changes in JDK-8230978 - Resolves: rhbz#1810557 -* Tue Feb 04 2020 Andrew Hughes - 1:1.8.0.252.b02-0.0.ea +* Tue Feb 04 2020 Andrew Hughes - 1:1.8.0.252.b02-0.1.ea - Update to aarch64-shenandoah-jdk8u252-b02. - Resolves: rhbz#1810557