it-jamvm-2.0
authorOpenJDK Team <openjdk@lists.launchpad.net>
Tue, 3 Apr 2018 07:00:06 +0000 (08:00 +0100)
committerMoritz Muehlenhoff <jmm@debian.org>
Tue, 3 Apr 2018 07:00:06 +0000 (08:00 +0100)
===================================================================

Gbp-Pq: Name it-jamvm-2.0.diff

Makefile.am
patches/jamvm-2.5.3-fix.diff [new file with mode: 0644]

index c81b5f33f1b53d9a7b546ee8941519f4f1c68fe2..5753fbb50ed8722aa168af412504d41e8331de94 100644 (file)
@@ -26,8 +26,8 @@ CACAO_BASE_URL = $(DROP_URL)/cacao
 CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz
 CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_SRC_ZIP)
 
-JAMVM_VERSION = ec18fb9e49e62dce16c5094ef1527eed619463aa
-JAMVM_SHA256SUM = 31810266666c23822942aac62a78019c2c4589e1c5ee48329cbf42652d4437bc
+JAMVM_VERSION = 2.0.0
+JAMVM_SHA256SUM = 76428e96df0ae9dd964c7a7c74c1e9a837e2f312c39e9a357fa8178f7eff80da
 JAMVM_BASE_URL = $(DROP_URL)/jamvm
 JAMVM_URL = $(JAMVM_BASE_URL)/jamvm-$(JAMVM_VERSION).tar.gz
 JAMVM_SRC_ZIP = jamvm-$(JAMVM_VERSION).tar.gz
@@ -404,8 +404,6 @@ endif
 
 if BUILD_JAMVM
 ICEDTEA_PATCHES += \
-       patches/jamvm/find_class_from_caller.patch \
-       patches/jamvm/pr2172-tempdir.patch \
        patches/jamvm/noexecstack.patch \
        patches/jamvm/pr2665.patch \
        patches/jamvm/pr3134-unsafe_methods.patch
@@ -419,6 +417,11 @@ if !USE_NON_NSS_CURVES
 ICEDTEA_PATCHES += patches/rh1022017.patch
 endif
 
+if BUILD_JAMVM
+ICEDTEA_PATCHES += \
+       patches/jamvm-2.5.3-fix.diff
+endif
+
 ICEDTEA_PATCHES += $(DISTRIBUTION_PATCHES)
 
 # Bootstrapping patches
@@ -2456,7 +2459,7 @@ clean-rewrite-rhino:
 stamps/jamvm.stamp: $(OPENJDK_TREE) stamps/rt.stamp
 if BUILD_JAMVM
        cd jamvm/jamvm && \
-       ./autogen.sh --with-java-runtime-library=openjdk7 \
+       ./configure --with-java-runtime-library=openjdk7 \
          --prefix=$(abs_top_builddir)/jamvm/install \
          CFLAGS='$(EXTRA_CFLAGS_JAMVM)' LDFLAGS='$(EXTRA_LDFLAGS_JAMVM)' CPPFLAGS='$(EXTRA_CPPFLAGS_JAMVM)' CXXFLAGS='$(EXTRA_CXXFLAGS_JAMVM)'; \
        $(MAKE) ; \
diff --git a/patches/jamvm-2.5.3-fix.diff b/patches/jamvm-2.5.3-fix.diff
new file mode 100644 (file)
index 0000000..68c2e6f
--- /dev/null
@@ -0,0 +1,76 @@
+--- jamvm/jamvm-2.0.0/src/classlib/openjdk/jvm.c
++++ jamvm/jamvm-2.0.0/src/classlib/openjdk/jvm.c
+@@ -517,6 +517,48 @@ jclass JVM_FindClassFromBootLoader(JNIEnv *env, const char *name) {
+ }
++/* JVM_FindClassFromCaller
++ * Find a class from a given class loader.  Throws ClassNotFoundException.
++ *  name:   name of class
++ *  init:   whether initialization is done
++ *  loader: class loader to look up the class.
++ *          This may not be the same as the caller's class loader.
++ *  caller: initiating class. The initiating class may be null when a security
++ *          manager is not installed.
++ *
++ * Find a class with this name in this loader,
++ * using the caller's "protection domain".
++ */
++
++jclass JVM_FindClassFromCaller(JNIEnv *env, const char *name,
++                               jboolean init, jobject loader,
++                               jclass caller) {
++    Class *class;
++
++    TRACE("JVM_FindClassFromCaller(env=%p, name=%s, init=%d, loader=%p,"
++          " caller=%p)", env, name, init, loader, caller);
++
++    /* XXX The caller's protection domain should be used during
++       the findClassFromClassLoader but there is no specification or
++       unit-test in OpenJDK documenting the desired effect */
++
++    class = findClassFromClassLoader((char *)name, loader);
++
++    if(class == NULL) {
++        Object *excep = exceptionOccurred();
++        char *dot_name = slash2DotsDup((char*)name);
++
++        clearException();
++        signalChainedException(java_lang_ClassNotFoundException,
++                               dot_name, excep);
++        sysFree(dot_name);
++    } else if(init)
++        initClass(class);
++
++    return class;
++}
++
++
+ /* JVM_FindClassFromClassLoader */
+ jclass JVM_FindClassFromClassLoader(JNIEnv *env, const char *name,
+@@ -2965,6 +3007,24 @@ void JVM_GetVersionInfo(JNIEnv *env, jvm_version_info *info, size_t info_size) {
+ }
++/* JVM_GetTemporaryDirectory
++ * Return the temporary directory that the VM uses for the attach
++ * and perf data files.
++ *
++ * It is important that this directory is well-known and the
++ * same for all VM instances. It cannot be affected by configuration
++ * variables such as java.io.tmpdir.
++ *
++ * JamVM do not support the jvmstat framework thus this is left unimplemented.
++ */
++
++jstring JVM_GetTemporaryDirectory(JNIEnv *env) {
++    UNIMPLEMENTED("JVM_GetTemporaryDirectory");
++
++    return 0;
++}
++
++
+ /* JVM_RegisterSignal */
+ extern void signalHandler(int sig);