/hg/icedtea7: 3 new changesets

andrew at icedtea.classpath.org andrew at icedtea.classpath.org
Fri Apr 22 02:47:12 UTC 2016


changeset e5af5822ea90 in /hg/icedtea7
details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=e5af5822ea90
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Thu Apr 21 23:27:41 2016 +0100

	PR2665: icedtea/jamvm 2.6 fails as a build VM for icedtea

	2016-04-20  Andrew John Hughes  <gnu.andrew at member.fsf.org>

		PR2665: icedtea/jamvm 2.6 fails as a
		build VM for icedtea
		* Makefile.am:
		(ICEDTEA_PATCHES): Add new patch.
		* NEWS: Updated.
		* patches/jamvm/pr2665.patch:
		Set the classLoader field in java.lang.Class
		when a class is defined.


changeset 9f996c284c84 in /hg/icedtea7
details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=9f996c284c84
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Fri Apr 22 02:46:06 2016 +0100

	PR2929: configure: error: "A JDK home directory could not be found."

	2016-04-21  Andrew John Hughes  <gnu.andrew at member.fsf.org>

		PR2929: configure: error: "A JDK home directory
		could not be found."
		* NEWS: Updated.
		* acinclude.m4:
		(IT_FIND_RHINO_JAR): Refactor to be more
		verbose and helpful to the user.
		(IT_CHECK_FOR_JDK): Point user to the
		configure option if we fail to find the JDK.


changeset 208625aa1530 in /hg/icedtea7
details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=208625aa1530
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Fri Apr 22 03:48:04 2016 +0100

	PR2935: Check that freetype defines FT_CONFIG_OPTION_INFINALITY_PATCHSET if enabling infinality

	2016-04-21  Andrew John Hughes  <gnu.andrew at member.fsf.org>

		PR2935: Check that freetype defines
		FT_CONFIG_OPTION_INFINALITY_PATCHSET if
		enabling infinality
		* NEWS: Updated.
		* acinclude.m4:
		(IT_ENABLE_INFINALITY): Depend on
		IT_CHECK_FOR_FREETYPE and check that
		FreeType defines
		FT_CONFIG_OPTION_INFINALITY_PATCHSET.
		(IT_CHECK_FOR_FREETYPE): Moved from
		configure.ac to its own macro so
		IT_ENABLE_INFINALITY can depend on it.
		* configure.ac:
		Move FreeType check to its own macro.


diffstat:

 ChangeLog                  |  39 ++++++++++++++++++
 Makefile.am                |   3 +-
 NEWS                       |   4 +
 acinclude.m4               |  96 +++++++++++++++++++++++++++++++++------------
 configure.ac               |  11 -----
 patches/jamvm/pr2665.patch |  36 +++++++++++++++++
 6 files changed, 151 insertions(+), 38 deletions(-)

diffs (279 lines):

diff -r b80abb979a20 -r 208625aa1530 ChangeLog
--- a/ChangeLog	Sun Apr 17 02:21:13 2016 +0100
+++ b/ChangeLog	Fri Apr 22 03:48:04 2016 +0100
@@ -1,3 +1,42 @@
+2016-04-21  Andrew John Hughes  <gnu.andrew at member.fsf.org>
+
+	PR2935: Check that freetype defines
+	FT_CONFIG_OPTION_INFINALITY_PATCHSET if
+	enabling infinality
+	* NEWS: Updated.
+	* acinclude.m4:
+	(IT_ENABLE_INFINALITY): Depend on
+	IT_CHECK_FOR_FREETYPE and check that
+	FreeType defines
+	FT_CONFIG_OPTION_INFINALITY_PATCHSET.
+	(IT_CHECK_FOR_FREETYPE): Moved from
+	configure.ac to its own macro so
+	IT_ENABLE_INFINALITY can depend on it.
+	* configure.ac:
+	Move FreeType check to its own macro.
+
+2016-04-21  Andrew John Hughes  <gnu.andrew at member.fsf.org>
+
+	PR2929: configure: error: "A JDK home directory
+	could not be found."
+	* NEWS: Updated.
+	* acinclude.m4:
+	(IT_FIND_RHINO_JAR): Refactor to be more
+	verbose and helpful to the user.
+	(IT_CHECK_FOR_JDK): Point user to the
+	configure option if we fail to find the JDK.
+
+2016-04-20  Andrew John Hughes  <gnu.andrew at member.fsf.org>
+
+	PR2665: icedtea/jamvm 2.6 fails as a
+	build VM for icedtea
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Add new patch.
+	* NEWS: Updated.
+	* patches/jamvm/pr2665.patch:
+	Set the classLoader field in java.lang.Class
+	when a class is defined.
+
 2016-04-16  Andrew John Hughes  <gnu.andrew at member.fsf.org>
 
 	S8150954, PR2867, RH1176206: AWT Robot not
diff -r b80abb979a20 -r 208625aa1530 Makefile.am
--- a/Makefile.am	Sun Apr 17 02:21:13 2016 +0100
+++ b/Makefile.am	Fri Apr 22 03:48:04 2016 +0100
@@ -402,7 +402,8 @@
 ICEDTEA_PATCHES += \
 	patches/jamvm/find_class_from_caller.patch \
 	patches/jamvm/pr2172-tempdir.patch \
-	patches/jamvm/noexecstack.patch
+	patches/jamvm/noexecstack.patch \
+	patches/jamvm/pr2665.patch
 endif
 
 if ENABLE_NSS
diff -r b80abb979a20 -r 208625aa1530 NEWS
--- a/NEWS	Sun Apr 17 02:21:13 2016 +0100
+++ b/NEWS	Fri Apr 22 03:48:04 2016 +0100
@@ -18,8 +18,12 @@
   - S8076221, PR2809: Disable RC4 cipher suites
 * Bug fixes
   - PR2889: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
+  - PR2929: configure: error: "A JDK home directory could not be found."
+  - PR2935: Check that freetype defines FT_CONFIG_OPTION_INFINALITY_PATCHSET if enabling infinality
 * AArch64 port
   - PR2914: byte_map_base is not page aligned on OpenJDK 7
+* JamVM
+  - PR2665: icedtea/jamvm 2.6 fails as a build VM for icedtea
 
 New in release 2.6.5 (2016-03-24):
 
diff -r b80abb979a20 -r 208625aa1530 acinclude.m4
--- a/acinclude.m4	Sun Apr 17 02:21:13 2016 +0100
+++ b/acinclude.m4	Fri Apr 22 03:48:04 2016 +0100
@@ -602,43 +602,62 @@
   [
     case "${withval}" in
       yes)
-	RHINO_JAR=yes
+	RHINO_RESULT=yes
         ;;
       no)
-        RHINO_JAR=no
+        RHINO_RESULT=no
         ;;
       *)
-    	if test -f "${withval}"; then
-          RHINO_JAR="${withval}"
-        else
-	  AC_MSG_RESULT([not found])
-          AC_MSG_ERROR("The rhino jar ${withval} was not found.")
-        fi
+	RHINO_RESULT=yes
+        RHINO_JAR="${withval}"
 	;;
      esac
   ],
   [
-    RHINO_JAR=yes
+    RHINO_RESULT=yes
   ])
-  if test x"${RHINO_JAR}" = "xyes"; then
-    if test -e "/usr/share/java/rhino.jar"; then
-      RHINO_JAR=/usr/share/java/rhino.jar
-    elif test -e "/usr/share/java/js.jar"; then
-      RHINO_JAR=/usr/share/java/js.jar
-    elif test -e "/usr/share/rhino-1.6/lib/js.jar"; then
-      RHINO_JAR=/usr/share/rhino-1.6/lib/js.jar
+  AC_MSG_RESULT([$RHINO_RESULT])
+  if test "x${RHINO_RESULT}" = "xyes"; then
+    if test "x${RHINO_JAR}" != x; then
+      AC_MSG_CHECKING([if ${RHINO_JAR} is a valid JAR file])
+      if test -f ${RHINO_JAR}; then
+      	 AC_MSG_RESULT([yes])
+      else
+	 AC_MSG_RESULT([no])
+	 RHINO_JAR=
+      fi
     fi
-    if test x"${RHINO_JAR}" = "xyes"; then
-      AC_MSG_RESULT([not found])
-      AC_MSG_ERROR("A rhino jar was not found in /usr/share/java as either rhino.jar or js.jar.")
+    if test "x${RHINO_JAR}" = x; then
+      RHINO_JAR="/usr/share/java/rhino.jar"
+      AC_MSG_CHECKING([if ${RHINO_JAR} is a valid JAR file])
+      if test -f ${RHINO_JAR}; then
+        AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+	RHINO_JAR="/usr/share/java/js.jar"
+      	AC_MSG_CHECKING([if ${RHINO_JAR} is a valid JAR file])
+      	if test -f ${RHINO_JAR}; then
+      	  AC_MSG_RESULT([yes])
+      	else
+	  AC_MSG_RESULT([no])
+	  RHINO_JAR="/usr/share/rhino-1.6/lib/js.jar"
+      	  AC_MSG_CHECKING([if ${RHINO_JAR} is a valid JAR file])
+      	  if test -f ${RHINO_JAR}; then
+      	    AC_MSG_RESULT([yes])
+      	  else
+	    AC_MSG_RESULT([no])
+	    RHINO_JAR=
+	  fi
+        fi
+      fi
+    fi
+    if test x"${RHINO_JAR}" = "x"; then
+      AC_MSG_ERROR([A Rhino JAR could not be found; specify one using --with-rhino=jar=<FILE> or use --without-rhino.])
+    else
+      AC_MSG_NOTICE([Using Rhino JAR: ${RHINO_JAR}])
     fi
   fi
-  AC_MSG_RESULT(${RHINO_JAR})
-  AM_CONDITIONAL(WITH_RHINO, test x"${RHINO_JAR}" != "xno")
-dnl Clear RHINO_JAR if it doesn't contain a valid filename
-  if test x"${RHINO_JAR}" = "xno"; then
-    RHINO_JAR=
-  fi
+  AM_CONDITIONAL(WITH_RHINO, test x"${RHINO_JAR}" != "x")
   AC_SUBST(RHINO_JAR)
 ])
 
@@ -1160,7 +1179,7 @@
     AC_MSG_RESULT(${SYSTEM_JDK_DIR})
   fi
   if ! test -d "${SYSTEM_JDK_DIR}"; then
-    AC_MSG_ERROR("A JDK home directory could not be found.")
+    AC_MSG_ERROR("A JDK home directory could not be found. Try specifying one using --with-jdk-home=<DIR>")
   fi
   AC_SUBST(SYSTEM_JDK_DIR)
 ])
@@ -2819,6 +2838,7 @@
 
 AC_DEFUN_ONCE([IT_ENABLE_INFINALITY],
 [
+  AC_REQUIRE([IT_CHECK_FOR_FREETYPE])
   AC_REQUIRE([IT_CHECK_FOR_FONTCONFIG])
   AC_MSG_CHECKING([whether to use fontconfig to provide better font rendering])
   AC_ARG_ENABLE([infinality],
@@ -2842,6 +2862,20 @@
     if test "x${ENABLE_SYSTEM_FONTCONFIG}" != "xtrue"; then
       AC_MSG_ERROR([Infinality support requires fontconfig. Either --enable-system-fontconfig or --disable-infinality])
     fi
+    AC_MSG_CHECKING([if FreeType is patched with infinality support])
+    AC_LANG_PUSH([C])
+    CFLAGS_SAVED=$CFLAGS
+    CFLAGS="$CFLAGS $FREETYPE2_CFLAGS"
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+    #include <ft2build.h>
+    #include FT_FREETYPE_H
+    #ifndef FT_CONFIG_OPTION_INFINALITY_PATCHSET
+    #error Infinality not supported
+    #endif
+    ]])], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); \
+      AC_MSG_ERROR([Infinality support requires infinality support in FreeType.])])
+    CFLAGS=$CFLAGS_SAVED
+    AC_LANG_POP([C])
   fi
 ])
 
@@ -3342,3 +3376,13 @@
   AM_CONDITIONAL(USE_ALT_CACERTS_FILE, test "x${ALT_CACERTS_FILE}" != "xno")
   AC_SUBST(ALT_CACERTS_FILE)
 ])
+
+AC_DEFUN_ONCE([IT_CHECK_FOR_FREETYPE],
+[
+dnl Check for freetype2 headers and libraries.
+  PKG_CHECK_MODULES(FREETYPE2, freetype2,[]
+	  ,[AC_MSG_ERROR([Could not find freetype2 - \
+  Try installing freetype2-devel.])])
+  AC_SUBST(FREETYPE2_CFLAGS)
+  AC_SUBST(FREETYPE2_LIBS)
+])
diff -r b80abb979a20 -r 208625aa1530 configure.ac
--- a/configure.ac	Sun Apr 17 02:21:13 2016 +0100
+++ b/configure.ac	Fri Apr 22 03:48:04 2016 +0100
@@ -359,17 +359,6 @@
 AC_SUBST(XTST_CFLAGS)
 AC_SUBST(XTST_LIBS)
 
-dnl Check for freetype2 headers and libraries.
-PKG_CHECK_MODULES(FREETYPE2, freetype2,[FREETYPE2_FOUND=yes]
-	,[FREETYPE2_FOUND=no])
-if test "x${FREETYPE2_FOUND}" = xno
-then
-  AC_MSG_ERROR([Could not find freetype2 - \
-  Try installing freetype2-devel.])
-fi
-AC_SUBST(FREETYPE2_CFLAGS)
-AC_SUBST(FREETYPE2_LIBS)
-
 dnl Check for alsa headers and libraries (only required for Linux).
 if test "x${BUILD_OS_DIR}" = "xlinux"
 then
diff -r b80abb979a20 -r 208625aa1530 patches/jamvm/pr2665.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/jamvm/pr2665.patch	Fri Apr 22 03:48:04 2016 +0100
@@ -0,0 +1,36 @@
+diff --git a/src/symbol.h b/src/symbol.h
+index 8864fcb..c3836a7 100644
+--- jamvm.orig/jamvm/src/symbol.h
++++ jamvm/jamvm/src/symbol.h
+@@ -60,6 +60,7 @@ extern char *symbol_values[];
+     action(uncaughtException, "uncaughtException"), \
+     action(contextClassLoader, "contextClassLoader"), \
+     action(getSystemClassLoader, "getSystemClassLoader"), \
++    action(classLoader, "classLoader"), \
+     \
+     /* Constant pool attribute names */\
+     action(Code, "Code"), \
+diff --git a/src/classlib/openjdk/jvm.c b/src/classlib/openjdk/jvm.c
+index b5f4cae..fc10983 100644
+--- jamvm.orig/jamvm/src/classlib/openjdk/jvm.c
++++ jamvm/jamvm/src/classlib/openjdk/jvm.c
+@@ -578,6 +575,19 @@ jclass JVM_DefineClassWithSource(JNIEnv *env, const char *name, jobject loader,
+     if(class != NULL) {
+         CLASS_CB(class)->protection_domain = pd;
+         linkClass(class);
++
++	/* Set classLoader field in java.lang.Class instance */
++	FieldBlock *class_loader_fb = findField(class->class,
++						SYMBOL(classLoader),
++						SYMBOL(sig_java_lang_ClassLoader));
++	if (class_loader_fb == NULL) {
++	    jam_fprintf(stderr, "defineClass: classLoader field missing"
++			" in java.lang.Class\n");
++	    exitVM(1);
++	}
++
++	int cl_offset = class_loader_fb->u.offset;
++	INST_DATA(class, Object*, cl_offset) = loader;
+     }
+ 
+     return class;


More information about the distro-pkg-dev mailing list