Hi, On Fri, Oct 23, 2015 at 12:50:01PM +0300, Erkka Kääriä wrote: > > Hotspot compiler has a bug where signed integers could overflow. This is > undefined behaviour, and causes massive memory leak when compiled with GCC > 5.0+, > causing the build to fail. > > This is fixed by backporting patch from > https://bugs.openjdk.java.net/browse/JDK-8078666 where it was fixed by > Severin Gehwolf. >
Pushed to master, Thanks! > Signed-off-by: Erkka Kääriä <[email protected]> > --- > diff --git > a/recipes-core/icedtea/openjdk-7-03b147/icedtea-hotspot-fix-undefined-behaviour.patch > > b/recipes-core/icedtea/openjdk-7-03b147/icedtea-hotspot-fix-undefined-behaviour.patch > new file mode 100644 > index 0000000..56513a0 > --- /dev/null > +++ > b/recipes-core/icedtea/openjdk-7-03b147/icedtea-hotspot-fix-undefined-behaviour.patch > @@ -0,0 +1,49 @@ > +Upstream-Status: Backport > + > +Hotspot compiler has a bug where signed integers could overflow. This is > +undefined behaviour, and causes massive memory leak when compiled with GCC > 5.0+, > +causing the build to fail. > + > +This is fixed by backporting patch from > +https://bugs.openjdk.java.net/browse/JDK-8078666 where it was fixed by > +Severin Gehwolf. > + > +Signed-off-by: Erkka Kääriä <[email protected]> > + > +--- openjdk/hotspot/src/share/vm/opto/type.cpp > ++++ openjdk/hotspot/src/share/vm/opto/type.cpp > +@@ -1077,11 +1077,11 @@ static int normalize_int_widen( jint lo, jint hi, > int w ) { > + // Certain normalizations keep us sane when comparing types. > + // The 'SMALLINT' covers constants and also CC and its relatives. > + if (lo <= hi) { > +- if ((juint)(hi - lo) <= SMALLINT) w = Type::WidenMin; > +- if ((juint)(hi - lo) >= max_juint) w = Type::WidenMax; // TypeInt::INT > ++ if (((juint)hi - lo) <= SMALLINT) w = Type::WidenMin; > ++ if (((juint)hi - lo) >= max_juint) w = Type::WidenMax; // TypeInt::INT > + } else { > +- if ((juint)(lo - hi) <= SMALLINT) w = Type::WidenMin; > +- if ((juint)(lo - hi) >= max_juint) w = Type::WidenMin; // dual > TypeInt::INT > ++ if (((juint)lo - hi) <= SMALLINT) w = Type::WidenMin; > ++ if (((juint)lo - hi) >= max_juint) w = Type::WidenMin; // dual > TypeInt::INT > + } > + return w; > + } > +@@ -1332,11 +1332,11 @@ static int normalize_long_widen( jlong lo, jlong hi, > int w ) { > + // Certain normalizations keep us sane when comparing types. > + // The 'SMALLINT' covers constants. > + if (lo <= hi) { > +- if ((julong)(hi - lo) <= SMALLINT) w = Type::WidenMin; > +- if ((julong)(hi - lo) >= max_julong) w = Type::WidenMax; // > TypeLong::LONG > ++ if (((julong)hi - lo) <= SMALLINT) w = Type::WidenMin; > ++ if (((julong)hi - lo) >= max_julong) w = Type::WidenMax; // > TypeLong::LONG > + } else { > +- if ((julong)(lo - hi) <= SMALLINT) w = Type::WidenMin; > +- if ((julong)(lo - hi) >= max_julong) w = Type::WidenMin; // dual > TypeLong::LONG > ++ if (((julong)lo - hi) <= SMALLINT) w = Type::WidenMin; > ++ if (((julong)lo - hi) >= max_julong) w = Type::WidenMin; // dual > TypeLong::LONG > + } > + return w; > + } > +-- > +2.1.4 > + > diff --git a/recipes-core/icedtea/openjdk-7-release-03b147.inc > b/recipes-core/icedtea/openjdk-7-release-03b147.inc > index 98266f7..b1cf6e9 100644 > --- a/recipes-core/icedtea/openjdk-7-release-03b147.inc > +++ b/recipes-core/icedtea/openjdk-7-release-03b147.inc > @@ -84,6 +84,7 @@ OPENJDK_PATCHES = " \ > file://icedtea-change-to-gdb-debug-format.patch;apply=no \ > file://icedtea-disable-x11-in-headless.patch;apply=no \ > file://icedtea-disable-sun.applet-for-tools-in-headless.patch;apply=no \ > + file://icedtea-hotspot-fix-undefined-behaviour.patch;apply=no \ > " > > OPENJDK_HEADLESS_PATCHES = " \ > @@ -102,5 +103,6 @@ export DISTRIBUTION_PATCHES = " \ > patches/icedtea-flags.patch \ > patches/icedtea-openjdk-remove-currency-data-generation-expi.patch \ > patches/icedtea-change-to-gdb-debug-format.patch \ > + patches/icedtea-hotspot-fix-undefined-behaviour.patch \ > ${CLEAN_X11_DISTRIBUTION_PATCH} \ > Best Regards, Maxin -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
