diff --git a/JDK-8250861.patch b/JDK-8250861.patch new file mode 100644 index 0000000..0e42de2 --- /dev/null +++ b/JDK-8250861.patch @@ -0,0 +1,21 @@ +--- openjdk/hotspot/src/share/vm/opto/addnode.cpp Fri Oct 30 08:13:31 2020 +0000 ++++ openjdk/hotspot/src/share/vm/opto/addnode.cpp Thu Aug 06 08:10:56 2020 +0200 +@@ -918,7 +918,7 @@ + + // Transform MIN2(x + c0, MIN2(x + c1, z)) into MIN2(x + MIN2(c0, c1), z) + // if x == y and the additions can't overflow. +- if (phase->eqv(x,y) && ++ if (phase->eqv(x,y) && tx != NULL && + !can_overflow(tx, x_off) && + !can_overflow(tx, y_off)) { + return new (phase->C) MinINode(phase->transform(new (phase->C) AddINode(x, phase->intcon(MIN2(x_off, y_off)))), r->in(2)); +@@ -926,7 +926,7 @@ + } else { + // Transform MIN2(x + c0, y + c1) into x + MIN2(c0, c1) + // if x == y and the additions can't overflow. +- if (phase->eqv(x,y) && ++ if (phase->eqv(x,y) && tx != NULL && + !can_overflow(tx, x_off) && + !can_overflow(tx, y_off)) { + return new (phase->C) AddINode(x,phase->intcon(MIN2(x_off,y_off))); + diff --git a/java-1_8_0-openjdk.changes b/java-1_8_0-openjdk.changes index 70d5dc4..ce6bbb2 100644 --- a/java-1_8_0-openjdk.changes +++ b/java-1_8_0-openjdk.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Wed Nov 4 11:32:33 UTC 2020 - Fridrich Strba + +- Enable Shenandoah garbage collector on supported architectures + +------------------------------------------------------------------- +Mon Nov 2 16:04:46 UTC 2020 - Fridrich Strba + +- Added patch: + * s390.patch + + Fix build on s390 31bit + +------------------------------------------------------------------- +Mon Nov 2 14:29:43 UTC 2020 - Fridrich Strba + +- Added patch: + * JDK-8250861.patch + + Fix regression "8250861: Crash in MinINode::Ideal(PhaseGVN*, + bool)" introduced in October 2020 CPU + ------------------------------------------------------------------- Wed Oct 28 09:47:16 UTC 2020 - Fridrich Strba diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 3cb390f..9e16e7b 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -146,6 +146,7 @@ %else %global with_systemtap 0 %endif +%global with_shenandoah 1 %if %{with_systemtap} # Where to install systemtap tapset (links) # We would like these to be in a package specific subdir, @@ -175,7 +176,8 @@ Source6: http://icedtea.wildebeest.org/download/drops/icedtea8/%{icedtea_ Source7: http://icedtea.wildebeest.org/download/drops/icedtea8/%{icedtea_version}/langtools.tar.xz Source8: http://icedtea.wildebeest.org/download/drops/icedtea8/%{icedtea_version}/hotspot.tar.xz Source9: http://icedtea.wildebeest.org/download/drops/icedtea8/%{icedtea_version}/aarch32.tar.xz -Source10: http://icedtea.wildebeest.org/download/drops/icedtea8/%{icedtea_version}/nashorn.tar.xz +Source10: http://icedtea.wildebeest.org/download/drops/icedtea8/%{icedtea_version}/shenandoah.tar.xz +Source11: http://icedtea.wildebeest.org/download/drops/icedtea8/%{icedtea_version}/nashorn.tar.xz # RPM/distribution specific patches # RHBZ 1015432 Patch2: 1015432.patch @@ -190,6 +192,10 @@ Patch14: zero-javadoc-verbose.patch # # Patch for PPC Patch103: ppc-zero-hotspot.patch +# Patch for S390 +Patch104: s390.patch +# +Patch200: JDK-8250861.patch Patch1001: java-1_8_0-openjdk-suse-desktop-files.patch Patch1002: icedtea-3.8.0-s390.patch @@ -507,9 +513,14 @@ sh autogen.sh %ifarch %{arm} --with-hotspot-src-zip=%{SOURCE9} \ %else +%if %{with zero} || %{without shenandoah} --with-hotspot-src-zip=%{SOURCE8} \ +%else + --with-hotspot-src-zip=%{SOURCE10} \ + --with-hotspot-build=shenandoah \ %endif - --with-nashorn-src-zip=%{SOURCE10} +%endif + --with-nashorn-src-zip=%{SOURCE11} make patch %{?_smp_mflags} @@ -526,6 +537,12 @@ patch -p0 -i %{PATCH14} patch -p0 -i %{PATCH103} %endif +%ifarch s390 +patch -p0 -i %{PATCH104} +%endif + +patch -p0 -i %{PATCH200} + patch -p0 -i %{PATCH2001} patch -p0 -i %{PATCH2002} diff --git a/s390.patch b/s390.patch new file mode 100644 index 0000000..a51416e --- /dev/null +++ b/s390.patch @@ -0,0 +1,11 @@ +--- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp 2020-11-02 16:54:31.999787520 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1ConcurrentMarkObjArrayProcessor.cpp 2020-11-02 16:59:27.993852851 +0100 +@@ -41,7 +41,7 @@ + } + + size_t G1CMObjArrayProcessor::process_array_slice(objArrayOop obj, HeapWord* start_from, size_t remaining) { +- size_t words_to_scan = MIN2(remaining, ObjArrayMarkingStride); ++ size_t words_to_scan = MIN2(remaining, (size_t) ObjArrayMarkingStride); + + if (remaining > ObjArrayMarkingStride) { + push_array_slice(start_from + ObjArrayMarkingStride); diff --git a/shenandoah.tar.xz b/shenandoah.tar.xz new file mode 100644 index 0000000..bd328d5 --- /dev/null +++ b/shenandoah.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1718e537f195adba5f98e30d115cc15db530d3f91e88cdbaaf307ea4220f7cc9 +size 7277048