diff options
| -rw-r--r-- | recipes-core/cacao/cacao-initial_0.98.bb | 42 | ||||
| -rw-r--r-- | recipes-core/cacao/files/cacao-0.98-initial.patch | 45 | ||||
| -rw-r--r-- | recipes-core/cacao/files/disable_hw_exceptions.patch | 22 |
3 files changed, 109 insertions, 0 deletions
diff --git a/recipes-core/cacao/cacao-initial_0.98.bb b/recipes-core/cacao/cacao-initial_0.98.bb new file mode 100644 index 0000000..b6bcd1c --- /dev/null +++ b/recipes-core/cacao/cacao-initial_0.98.bb | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | DESCRIPTION = "CacaoVM for use as OpenEmbedded's Java VM" | ||
| 2 | HOMEPAGE = "http://www.cacaojvm.org/" | ||
| 3 | LICENSE = "GPL-2.0" | ||
| 4 | LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" | ||
| 5 | SECTION = "interpreters" | ||
| 6 | |||
| 7 | PROVIDES = "virtual/java-initial" | ||
| 8 | |||
| 9 | inherit native autotools | ||
| 10 | |||
| 11 | DEPENDS = "zlib-native libtool-native fastjar-native classpath-initial jikes-initial" | ||
| 12 | |||
| 13 | SRC_URI = "\ | ||
| 14 | http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-${PV}/cacao-${PV}.tar.bz2; \ | ||
| 15 | file://cacao-0.98-initial.patch \ | ||
| 16 | file://disable_hw_exceptions.patch \ | ||
| 17 | " | ||
| 18 | |||
| 19 | # libjvm disabled - it would conflict with cacao-native installations | ||
| 20 | EXTRA_OECONF = "\ | ||
| 21 | --enable-debug \ | ||
| 22 | --with-classpath-libdir=${libdir} \ | ||
| 23 | --with-classpath-includedir=${includedir}/classpath-initial \ | ||
| 24 | --with-classpath-classes=${datadir}/classpath-initial/glibj.zip \ | ||
| 25 | --with-vm-zip=${datadir}/cacao-initial/vm.zip \ | ||
| 26 | --program-suffix=-initial \ | ||
| 27 | --disable-libjvm \ | ||
| 28 | " | ||
| 29 | |||
| 30 | # enforces the usage of jikes-initial | ||
| 31 | export JAVAC="jikes-initial" | ||
| 32 | |||
| 33 | # enforces the usage of fastjar | ||
| 34 | export JAR="fastjar" | ||
| 35 | |||
| 36 | do_configure_append() { | ||
| 37 | # Fix the executable name in the wrapper script. | ||
| 38 | sed -i -e "s|exec cacao|exec cacao-initial|" src/scripts/java.in | ||
| 39 | } | ||
| 40 | |||
| 41 | SRC_URI[md5sum] = "8b8907c8b925761c9410bcadb9705346" | ||
| 42 | SRC_URI[sha256sum] = "cb9363add825cedf77764fc49a223aaf43f0a9f485b711ba8c92f16b13fff188" | ||
diff --git a/recipes-core/cacao/files/cacao-0.98-initial.patch b/recipes-core/cacao/files/cacao-0.98-initial.patch new file mode 100644 index 0000000..30b6d14 --- /dev/null +++ b/recipes-core/cacao/files/cacao-0.98-initial.patch | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | Index: cacao-0.98/configure.ac | ||
| 2 | =================================================================== | ||
| 3 | --- cacao-0.98.orig/configure.ac 2007-12-19 22:07:55.000000000 +0100 | ||
| 4 | +++ cacao-0.98/configure.ac 2007-12-19 22:08:02.000000000 +0100 | ||
| 5 | @@ -27,7 +27,7 @@ | ||
| 6 | dnl Process this file with autoconf to produce a configure script. | ||
| 7 | |||
| 8 | |||
| 9 | -AC_INIT(cacao, 0.98, cacao@cacaojvm.org) | ||
| 10 | +AC_INIT(cacao-initial, 0.98, cacao@cacaojvm.org) | ||
| 11 | AC_CONFIG_SRCDIR(src/cacao/cacao.c) | ||
| 12 | AC_CANONICAL_HOST | ||
| 13 | AC_PREREQ(2.59) | ||
| 14 | Index: cacao-0.98/src/vm/vm.c | ||
| 15 | =================================================================== | ||
| 16 | --- cacao-0.98.orig/src/vm/vm.c 2007-12-19 22:31:19.000000000 +0100 | ||
| 17 | +++ cacao-0.98/src/vm/vm.c 2007-12-19 22:32:36.000000000 +0100 | ||
| 18 | @@ -623,7 +623,7 @@ | ||
| 19 | #else | ||
| 20 | puts(" java.boot.class.path : "CLASSPATH_CLASSES""); | ||
| 21 | #endif | ||
| 22 | - puts(" gnu.classpath.boot.library.path: "CLASSPATH_LIBDIR"/classpath\n"); | ||
| 23 | + puts(" gnu.classpath.boot.library.path: "CLASSPATH_LIBDIR"/classpath-initial\n"); | ||
| 24 | |||
| 25 | puts("Runtime variables:\n"); | ||
| 26 | printf(" maximum heap size : %d\n", opt_heapmaxsize); | ||
| 27 | @@ -828,15 +828,15 @@ | ||
| 28 | |||
| 29 | /* and finally set the path to GNU Classpath libraries */ | ||
| 30 | |||
| 31 | - len = strlen(cacao_prefix) + strlen("/lib/classpath") + strlen("0"); | ||
| 32 | + len = strlen(cacao_prefix) + strlen("/lib/classpath-initial") + strlen("0"); | ||
| 33 | |||
| 34 | classpath_libdir = MNEW(char, len); | ||
| 35 | strcpy(classpath_libdir, cacao_prefix); | ||
| 36 | - strcat(classpath_libdir, "/lib/classpath"); | ||
| 37 | + strcat(classpath_libdir, "/lib/classpath-initial"); | ||
| 38 | #else | ||
| 39 | cacao_prefix = CACAO_PREFIX; | ||
| 40 | cacao_libjvm = CACAO_LIBDIR"/libjvm"; | ||
| 41 | - classpath_libdir = CLASSPATH_LIBDIR"/classpath"; | ||
| 42 | + classpath_libdir = CLASSPATH_LIBDIR"/classpath-initial"; | ||
| 43 | #endif | ||
| 44 | |||
| 45 | /* set the bootclasspath */ | ||
diff --git a/recipes-core/cacao/files/disable_hw_exceptions.patch b/recipes-core/cacao/files/disable_hw_exceptions.patch new file mode 100644 index 0000000..bf2e998 --- /dev/null +++ b/recipes-core/cacao/files/disable_hw_exceptions.patch | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | Index: cacao-0.98/src/vm/exceptions.c | ||
| 2 | =================================================================== | ||
| 3 | --- cacao-0.98.orig/src/vm/exceptions.c 2007-06-05 09:41:07.000000000 +0200 | ||
| 4 | +++ cacao-0.98/src/vm/exceptions.c 2014-01-03 16:21:42.430783148 +0100 | ||
| 5 | @@ -89,17 +89,6 @@ | ||
| 6 | |||
| 7 | bool exceptions_init(void) | ||
| 8 | { | ||
| 9 | - int pagesize; | ||
| 10 | - | ||
| 11 | - /* mmap a memory page at address 0x0, so our hardware-exceptions | ||
| 12 | - work. */ | ||
| 13 | - | ||
| 14 | - pagesize = getpagesize(); | ||
| 15 | - | ||
| 16 | - (void) memory_mmap_anon(NULL, pagesize, PROT_NONE, MAP_PRIVATE | MAP_FIXED); | ||
| 17 | - | ||
| 18 | - /* check if we get into trouble with our hardware-exceptions */ | ||
| 19 | - | ||
| 20 | if (OFFSET(java_bytearray, data) <= EXCEPTION_HARDWARE_PATCHER) | ||
| 21 | vm_abort("signal_init: array-data offset is less or equal the maximum hardware-exception displacement: %d <= %d", OFFSET(java_bytearray, data), EXCEPTION_HARDWARE_PATCHER); | ||
| 22 | |||
