Patch attached On Wed, Aug 10, 2016 at 11:44 AM, Tiago Stürmer Daitx <tiago.da...@canonical.com> wrote: > Source: openjdk-7 > Version: 7u111-2.6.7-1 > Severity: important > > Dear Maintainer, > > [Issue] > The fix of OpenJDK's bug 8158260 > (http://icedtea.classpath.org/hg/release/icedtea7-forest-2.6/hotspot/rev/4f8cbd54a9c6) > introduced 2 new native methods to the sun.misc.Unsafe class: > isBigEndian0 and unalignedAccess0. > > This completely broke JamVM and as of now it is impossible to start a > jamvm session. > > jtreg summary results for OpenJDK 7: > hotspot - Test results: passed: 5; failed: 309; error: 7 > langtools - Test results: passed: 374; failed: 1,593; error: 1 > > Error output from a hotspot testcase: > ----------System.err:(6/344)---------- > Error initialising VM (initialiseMainThread) > Check the README for compatible class-libraries/versions > Exception occurred while printing exception > (java/lang/NullPointerException)... > Original exception was java/lang/UnsatisfiedLinkError > Error: Could not create the Java Virtual Machine. > Error: A fatal exception has occurred. Program will exit. > result: Failed. Unexpected exit from test [exit code: 1] > > Running java -jamvm -version fails the same way. > > [Fix] > The simple fix is to add both methods to the natives.c file in the > classlib/openjdk directory. > > I have tested this with IcedTea 2.6.7 and now jtreg passes: > hotspot - Test results: passed: 220; failed: 90; error: 11 > langtools - Test results: passed: 1,901; failed: 65; error: 2 > > I have reported this upstream at > https://sourceforge.net/p/jamvm/code/merge-requests/1/ and it is now > waiting review. > > Also reported for IcedTea 2.6.7 at > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3134 > > -- System Information: > Debian Release: stretch/sid > APT prefers xenial-updates > APT policy: (4000, 'xenial-updates'), (4000, 'xenial-security'), (4000, > 'xenial-backports'), (4000, 'xenial') > Architecture: amd64 (x86_64) > Foreign Architectures: i386 > > Kernel: Linux 4.4.0-31-generic (SMP w/4 CPU cores) > Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) > Shell: /bin/sh linked to /bin/dash > Init: systemd (via /run/systemd/system) >
-- Tiago Stürmer Daitx Software Engineer tiago.da...@canonical.com PGP Key: 4096R/F5B213BE (hkp://keyserver.ubuntu.com) Fingerprint = 45D0 FE5A 8109 1E91 866E 8CA4 1931 8D5E F5B2 13BE
Description: Adds Unsafe methods from S8158260 In order to fix the PPC64 bug S8158260 two new native methods were added to sun.misc.Unsafe: isBigEndian0 and unalignedAcces0. Both were added by the following commit: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.6/hotspot/rev/4f8cbd54a9c6 . This patch adds those methods to the JAMVM being used by IcedTea. Author: Tiago Stürmer Daitx <tiago.da...@canonical.com> Bug: https://sourceforge.net/p/jamvm/code/merge-requests/1/ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833933 Bug-IcedTea: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3134 Bug-Ubuntu: https://bugs.launchpad.net/openjdk/+bug/1611598 Last-Update: 2016-08-09 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ --- /dev/null +++ b/patches/jamvm/8158260-fix.patch @@ -0,0 +1,36 @@ +--- jamvm.orig/jamvm/src/classlib/openjdk/natives.c 2014-03-24 21:34:58.000000000 -0300 ++++ jamvm/jamvm/src/classlib/openjdk/natives.c 2016-08-09 19:26:36.205775539 -0300 +@@ -34,6 +33,7 @@ + #include "reflect.h" + #include "natives.h" + #include "openjdk.h" ++#include "properties.h" + #include "trace.h" + + int classlibInitialiseNatives() { +@@ -470,6 +465,16 @@ + return ostack; + } + ++uintptr_t *isBigEndian0(Class *clazz, MethodBlock *mb, uintptr_t *ostack) { ++ *ostack++ = IS_BIG_ENDIAN; ++ return ostack; ++} ++ ++uintptr_t *unalignedAccess0(Class *clazz, MethodBlock *mb, uintptr_t *ostack) { ++ *ostack++ = FALSE; ++ return ostack; ++} ++ + VMMethod sun_misc_unsafe[] = { + {"registerNatives", "()V", unsafeRegisterNatives}, + {"objectFieldOffset", "(Ljava/lang/reflect/Field;)J", +@@ -569,6 +574,8 @@ + {"fullFence", "()V", fullFence}, + {"loadFence", "()V", loadFence}, + {"storeFence", "()V", storeFence}, ++ {"isBigEndian0", "()Z", isBigEndian0}, ++ {"unalignedAccess0", "()Z", unalignedAccess0}, + {NULL, NULL, NULL} + }; + --- a/Makefile.am +++ b/Makefile.am @@ -404,7 +404,8 @@ endif if BUILD_JAMVM ICEDTEA_PATCHES += \ patches/jamvm/noexecstack.patch \ - patches/jamvm/pr2665.patch + patches/jamvm/pr2665.patch \ + patches/jamvm/8158260-fix.patch endif if ENABLE_NSS