summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schuster <thebohemian@gmx.net>2008-01-09 13:22:37 +0000
committerRobert Schuster <thebohemian@gmx.net>2008-01-09 13:22:37 +0000
commitabf51ba185546d0f5af8316cfd7ee8d2b9992c38 (patch)
tree93e45f91f73eeab2a2e83f6d3d6a77900a0913c0
parent8f073edcc8e3324117e1f869b65d577e0cf2e4f1 (diff)
jamvm: Added -initial version.
cacao: Multiple fixes. - added -initial version - added -native snapshot version classpath: - added -initial version - added -native version ecj: - added -initial version - added -native version that is compiled from source jikes: - jikes-native is not a virtual/javac-native provider any more
-rw-r--r--packages/cacao/cacao-initial_0.98.bb34
-rw-r--r--packages/cacao/cacao-native.inc27
-rw-r--r--packages/cacao/cacao-native_0.98+hg20071001.bb5
-rw-r--r--packages/cacao/files/cacao-0.98-initial.patch45
-rw-r--r--packages/classpath/classpath-initial_0.93.bb28
-rw-r--r--packages/classpath/classpath-native.inc32
-rw-r--r--packages/classpath/classpath-native_0.96.1.bb6
-rw-r--r--packages/classpath/files/gjar-prefix-patch.diff40
-rw-r--r--packages/ecj/ecj-bootstrap-native_3.3.bb38
-rw-r--r--packages/ecj/ecj-initial_3.3.bb84
-rwxr-xr-xpackages/ecj/files/ecj.in1
-rw-r--r--packages/jamvm/files/.mtn2git_empty0
-rw-r--r--packages/jamvm/files/jamvm_1.5.0-initial.patch82
-rw-r--r--packages/jamvm/jamvm-initial_1.5.0.bb36
-rw-r--r--packages/jikes/jikes-initial.bb23
-rw-r--r--packages/jikes/jikes-native_1.21.bb1
16 files changed, 481 insertions, 1 deletions
diff --git a/packages/cacao/cacao-initial_0.98.bb b/packages/cacao/cacao-initial_0.98.bb
new file mode 100644
index 0000000000..08abf41c33
--- /dev/null
+++ b/packages/cacao/cacao-initial_0.98.bb
@@ -0,0 +1,34 @@
+require cacao-native.inc
+
+PROVIDES = "virtual/java-initial"
+
+DEPENDS = "zlib-native libtool-native fastjar-native classpath-initial jikes-initial"
+
+PR = "r0"
+
+SRC_URI = "\
+ http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-${PV}/cacao-${PV}.tar.bz2; \
+ file://cacao-0.98-initial.patch;patch=1;pnum=1 \
+ "
+
+# libjvm disabled - it would conflict with cacao-native installations
+EXTRA_OECONF = "\
+ --enable-debug \
+ --with-classpath-libdir=${libdir} \
+ --with-classpath-includedir=${includedir}/classpath-initial \
+ --with-classpath-classes=${datadir}/classpath-initial/glibj.zip \
+ --with-vm-zip=${datadir}/cacao-initial/vm.zip \
+ --program-suffix=-initial \
+ --disable-libjvm \
+ "
+
+# enforces the usage of jikes-initial
+export JAVAC=jikes-initial
+
+# enforces the usage of fastjar
+export JAR=fastjar
+
+do_configure_append() {
+ # Fix the executable name in the wrapper script.
+ sed -i -e "s|exec cacao|exec cacao-initial|" src/scripts/java.in
+}
diff --git a/packages/cacao/cacao-native.inc b/packages/cacao/cacao-native.inc
new file mode 100644
index 0000000000..26d3d37f58
--- /dev/null
+++ b/packages/cacao/cacao-native.inc
@@ -0,0 +1,27 @@
+DESCRIPTION = "CacaoVM for use as OpenEmbedded's Java VM"
+HOMEPAGE = "http://www.cacaojvm.org/"
+LICENSE = "GPL"
+PRIORITY = "optional"
+SECTION = "interpreters"
+
+DEPENDS = "zlib-native libtool-native classpath-native ecj-initial fastjar-native"
+
+PROVIDES = "virtual/java-native"
+
+S = "${WORKDIR}/cacao-${PV}"
+
+inherit native autotools
+
+EXTRA_OECONF = "\
+ --enable-debug \
+ --with-classpath-libdir=${libdir} \
+ --with-classpath-includedir=${includedir}/classpath \
+ --with-classpath-classes=${datadir}/classpath/glibj.zip \
+ --with-vm-zip=${datadir}/cacao/vm.zip \
+ "
+
+# force usage of ecj-initial (but Java5-compatible class library)
+export JAVAC="${STAGING_BINDIR_NATIVE}/ecj-initial -bootclasspath ${STAGING_DATADIR_NATIVE}/classpath/glibj.zip"
+
+# force usage of fastjar
+export JAR=fastjar
diff --git a/packages/cacao/cacao-native_0.98+hg20071001.bb b/packages/cacao/cacao-native_0.98+hg20071001.bb
new file mode 100644
index 0000000000..409d2c7858
--- /dev/null
+++ b/packages/cacao/cacao-native_0.98+hg20071001.bb
@@ -0,0 +1,5 @@
+require cacao-native.inc
+
+PR = "r1"
+
+SRC_URI = "http://jalimo.evolvis.org/repository/sources/cacao-${PV}.tar.bz2;md5sum=9ff10c929bd0cbf15909107c1aff7518"
diff --git a/packages/cacao/files/cacao-0.98-initial.patch b/packages/cacao/files/cacao-0.98-initial.patch
new file mode 100644
index 0000000000..30b6d147e8
--- /dev/null
+++ b/packages/cacao/files/cacao-0.98-initial.patch
@@ -0,0 +1,45 @@
+Index: cacao-0.98/configure.ac
+===================================================================
+--- cacao-0.98.orig/configure.ac 2007-12-19 22:07:55.000000000 +0100
++++ cacao-0.98/configure.ac 2007-12-19 22:08:02.000000000 +0100
+@@ -27,7 +27,7 @@
+ dnl Process this file with autoconf to produce a configure script.
+
+
+-AC_INIT(cacao, 0.98, cacao@cacaojvm.org)
++AC_INIT(cacao-initial, 0.98, cacao@cacaojvm.org)
+ AC_CONFIG_SRCDIR(src/cacao/cacao.c)
+ AC_CANONICAL_HOST
+ AC_PREREQ(2.59)
+Index: cacao-0.98/src/vm/vm.c
+===================================================================
+--- cacao-0.98.orig/src/vm/vm.c 2007-12-19 22:31:19.000000000 +0100
++++ cacao-0.98/src/vm/vm.c 2007-12-19 22:32:36.000000000 +0100
+@@ -623,7 +623,7 @@
+ #else
+ puts(" java.boot.class.path : "CLASSPATH_CLASSES"");
+ #endif
+- puts(" gnu.classpath.boot.library.path: "CLASSPATH_LIBDIR"/classpath\n");
++ puts(" gnu.classpath.boot.library.path: "CLASSPATH_LIBDIR"/classpath-initial\n");
+
+ puts("Runtime variables:\n");
+ printf(" maximum heap size : %d\n", opt_heapmaxsize);
+@@ -828,15 +828,15 @@
+
+ /* and finally set the path to GNU Classpath libraries */
+
+- len = strlen(cacao_prefix) + strlen("/lib/classpath") + strlen("0");
++ len = strlen(cacao_prefix) + strlen("/lib/classpath-initial") + strlen("0");
+
+ classpath_libdir = MNEW(char, len);
+ strcpy(classpath_libdir, cacao_prefix);
+- strcat(classpath_libdir, "/lib/classpath");
++ strcat(classpath_libdir, "/lib/classpath-initial");
+ #else
+ cacao_prefix = CACAO_PREFIX;
+ cacao_libjvm = CACAO_LIBDIR"/libjvm";
+- classpath_libdir = CLASSPATH_LIBDIR"/classpath";
++ classpath_libdir = CLASSPATH_LIBDIR"/classpath-initial";
+ #endif
+
+ /* set the bootclasspath */
diff --git a/packages/classpath/classpath-initial_0.93.bb b/packages/classpath/classpath-initial_0.93.bb
new file mode 100644
index 0000000000..9e303f6eba
--- /dev/null
+++ b/packages/classpath/classpath-initial_0.93.bb
@@ -0,0 +1,28 @@
+# No later version of Classpath may be used because this is the latest that can be compiled
+# by jikes!
+
+require classpath-native.inc
+
+DESCRIPTION="Java1.4-compatible GNU Classpath variant that is used as bootclasspath for jikes-native."
+
+PR = "r0"
+
+DEPENDS = "zip-native fastjar-native jikes-native"
+
+EXTRA_OECONF = "\
+ --with-jikes=jikes \
+ --with-fastjar=fastjar \
+ --with-glibj \
+ --disable-local-sockets \
+ --disable-alsa \
+ --disable-gconf-peer \
+ --disable-gtk-peer \
+ --disable-plugin \
+ --disable-dssi \
+ --disable-examples \
+ --disable-tools \
+ --with-glibj-dir=${STAGING_DATADIR}/classpath-initial \
+ --with-native-libdir=${STAGING_LIBDIR}/classpath-initial \
+ --includedir=${STAGING_INCDIR}/classpath-initial \
+ "
+
diff --git a/packages/classpath/classpath-native.inc b/packages/classpath/classpath-native.inc
new file mode 100644
index 0000000000..bb5abaf178
--- /dev/null
+++ b/packages/classpath/classpath-native.inc
@@ -0,0 +1,32 @@
+DESCRIPTION = "GNU Classpath standard Java libraries - For native Java-dependent programs"
+HOMEPAGE = "http://www.gnu.org/software/classpath/"
+LICENSE = "Classpath"
+
+S = "${WORKDIR}/classpath-${PV}"
+
+SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz"
+
+DEPENDS = "ecj-initial fastjar-native zip-native"
+
+inherit autotools native
+
+EXTRA_OECONF = "\
+ --with-glibj \
+ --with-ecj=${STAGING_BINDIR_NATIVE}/ecj-initial \
+ --with-fastjar=fastjar \
+ --enable-local-sockets \
+ --disable-alsa \
+ --disable-gconf-peer \
+ --disable-gtk-peer \
+ --disable-plugin \
+ --disable-dssi \
+ --enable-examples \
+ --enable-tools \
+ --includedir=${STAGING_INCDIR}/classpath \
+ --with-vm=java \
+ "
+
+do_stage() {
+ oe_runmake install
+}
+
diff --git a/packages/classpath/classpath-native_0.96.1.bb b/packages/classpath/classpath-native_0.96.1.bb
new file mode 100644
index 0000000000..e7d1d07a81
--- /dev/null
+++ b/packages/classpath/classpath-native_0.96.1.bb
@@ -0,0 +1,6 @@
+require classpath-native.inc
+
+PR = "r1"
+
+SRC_URI += "file://gjar-prefix-patch.diff;patch=1;pnum=0"
+
diff --git a/packages/classpath/files/gjar-prefix-patch.diff b/packages/classpath/files/gjar-prefix-patch.diff
new file mode 100644
index 0000000000..64b262cb41
--- /dev/null
+++ b/packages/classpath/files/gjar-prefix-patch.diff
@@ -0,0 +1,40 @@
+Index: tools/gnu/classpath/tools/jar/Entry.java
+===================================================================
+RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/jar/Entry.java,v
+retrieving revision 1.1
+diff -u -r1.1 Entry.java
+--- tools/gnu/classpath/tools/jar/Entry.java 8 May 2006 18:38:20 -0000 1.1
++++ tools/gnu/classpath/tools/jar/Entry.java 10 Dec 2007 22:20:05 -0000
+@@ -1,5 +1,5 @@
+ /* Entry.java - represent a single file to write to a jar
+- Copyright (C) 2006 Free Software Foundation, Inc.
++ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+@@ -49,12 +49,22 @@
+ public Entry(File file, String name)
+ {
+ this.file = file;
+- this.name = name;
++
++ /* Removes any './' prefixes automatically. Those caused trouble
++ * in (boot) classpath use-cases. See #32516.
++ */
++ int start = 0;
++ while (name.length() > start + 2
++ && name.codePointAt(start) == '.'
++ && name.codePointAt(start + 1) == File.separatorChar)
++ start += 2;
++
++ this.name = name.substring(start);
+ }
+
+ public Entry(File file)
+ {
+- this.file = file;
+- this.name = file.toString();
++ this(file, file.toString());
+ }
++
+ }
diff --git a/packages/ecj/ecj-bootstrap-native_3.3.bb b/packages/ecj/ecj-bootstrap-native_3.3.bb
new file mode 100644
index 0000000000..bd4347457c
--- /dev/null
+++ b/packages/ecj/ecj-bootstrap-native_3.3.bb
@@ -0,0 +1,38 @@
+# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more
+# and no less features.
+#
+# Since the VM running the compiler has no effect on the produced bytecode this recipe
+# uses the jar created by ecj-initial and creates a start script that runs it with a different
+# VM.
+
+DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant"
+HOMEPAGE = "http://www.eclipse.org/"
+SECTION = "devel"
+PRIORITY = "optional"
+LICENSE = "EPL"
+
+DEPENDS = "ecj-initial virtual/java-native"
+
+PROVIDES = "virtual/javac-native"
+
+SRC_URI = "file://ecj.in"
+
+S = "${WORKDIR}"
+
+JAR = "ecj-bootstrap-${PV}.jar"
+
+inherit native
+
+do_compile() {
+ # Create the start script
+ echo "#!/bin/sh" > ecj-bootstrap
+ echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-bootstrap
+ echo "RUNTIME=java" >> ecj-bootstrap
+ cat ecj.in >> ecj-bootstrap
+}
+
+do_stage() {
+ install -d ${STAGING_BINDIR}
+ install -m 755 ${S}/ecj-bootstrap ${STAGING_BINDIR}
+ install -m 755 ${S}/ecj-bootstrap ${STAGING_BINDIR}/javac
+}
diff --git a/packages/ecj/ecj-initial_3.3.bb b/packages/ecj/ecj-initial_3.3.bb
new file mode 100644
index 0000000000..7b65daef99
--- /dev/null
+++ b/packages/ecj/ecj-initial_3.3.bb
@@ -0,0 +1,84 @@
+# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more
+# and no less features.
+
+# This variant runs on the initial (not Java5-compatible runtime).
+
+DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant"
+HOMEPAGE = "http://www.eclipse.org/"
+LICENSE = "EPL"
+
+DEPENDS = "fastjar-native jikes-initial virtual/java-initial"
+
+SRC_URI = "\
+ http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.3-200706251500/ecjsrc.zip \
+ file://ecj.in \
+ "
+
+S = "${WORKDIR}"
+
+inherit native
+
+JAR = "ecj-bootstrap-${PV}.jar"
+
+do_unpackpost() {
+ if [ ! -d source ]; then
+ mkdir source
+ fi
+
+ if [ ! -d build ]; then
+ mkdir build
+ fi
+
+ # Remove crap.
+ rm about.html build.xml
+ rm -rf META-INF
+
+ # Move source into separate subdir.
+ mv org source/
+
+ # Remove stuff unneeded for the bootstrap compiler.
+ rm -rf source/org/eclipse/jdt/internal/compiler/apt
+ rm -rf source/org/eclipse/jdt/internal/compiler/tool
+ rm -rf source/org/eclipse/jdt/internal/antadapter
+ rm source/org/eclipse/jdt/core/JDTCompilerAdapter.java
+
+ # Make a copy of the remaining source to get the embedded
+ # resources.
+ cp -r source/org build/
+
+ # Remove source code and other stuff.
+ find build -name '*.java' -exec rm -f {} \;
+ find build -name '*.html' -exec rm -f {} \;
+}
+
+addtask unpackpost after do_unpack before do_patch
+
+do_compile() {
+ find source -name '*.java' > sourcefiles
+ split -l 25 sourcefiles ecj-sources.
+
+ # Compiling in place is done because the sources contain
+ # property files which need to be available at runtime.
+ for list in `find . -name 'ecj-sources.*'`; do
+ echo "building files in $list ...";
+ echo jikes-initial -d build -source 1.4 -sourcepath source `cat $list`;
+ jikes-initial \
+ -d build -source 1.4 -sourcepath source `cat $list`;
+ done
+
+ fastjar -c -C build . -f ${JAR}
+
+ # Create the start script
+ echo "#!/bin/sh" > ecj-initial
+ echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-initial
+ echo "RUNTIME=java-initial" >> ecj-initial
+ cat ecj.in >> ecj-initial
+}
+
+do_stage() {
+ install -d ${STAGING_DATADIR}/java
+ install -m 755 ${S}/${JAR} ${STAGING_DATADIR}/java
+
+ install -d ${STAGING_BINDIR}
+ install -m 755 ${S}/ecj-initial ${STAGING_BINDIR}
+}
diff --git a/packages/ecj/files/ecj.in b/packages/ecj/files/ecj.in
new file mode 100755
index 0000000000..2099991cef
--- /dev/null
+++ b/packages/ecj/files/ecj.in
@@ -0,0 +1 @@
+${RUNTIME} -Xmx512m -cp ${ECJ_JAR} org.eclipse.jdt.internal.compiler.batch.Main ${1+"$@"}
diff --git a/packages/jamvm/files/.mtn2git_empty b/packages/jamvm/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/jamvm/files/.mtn2git_empty
diff --git a/packages/jamvm/files/jamvm_1.5.0-initial.patch b/packages/jamvm/files/jamvm_1.5.0-initial.patch
new file mode 100644
index 0000000000..9b972da014
--- /dev/null
+++ b/packages/jamvm/files/jamvm_1.5.0-initial.patch
@@ -0,0 +1,82 @@
+Index: jamvm-1.5.0/configure.ac
+===================================================================
+--- jamvm-1.5.0.orig/configure.ac 2007-12-20 00:01:08.000000000 +0100
++++ jamvm-1.5.0/configure.ac 2007-12-20 00:03:40.000000000 +0100
+@@ -22,7 +22,7 @@
+ dnl Process this file with autoconf to produce a configure script.
+
+ AC_INIT(src/jam.c)
+-AM_INIT_AUTOMAKE(jamvm, 1.5.0)
++AM_INIT_AUTOMAKE(jamvm-initial, 1.5.0)
+ AC_CONFIG_HEADERS([src/config.h])
+ AC_PREFIX_DEFAULT(/usr/local/jamvm)
+
+Index: jamvm-1.5.0/java-initial
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ jamvm-1.5.0/java-initial 2007-12-20 00:03:27.000000000 +0100
+@@ -0,0 +1,5 @@
++#!/bin/sh
++#
++# Wrapper script inspired by the one provided by cacao.
++
++exec jamvm-initial ${1+"$@"}
+Index: jamvm-1.5.0/lib/Makefile.am
+===================================================================
+--- jamvm-1.5.0.orig/lib/Makefile.am 2007-12-20 00:05:24.000000000 +0100
++++ jamvm-1.5.0/lib/Makefile.am 2007-12-20 00:05:28.000000000 +0100
+@@ -19,7 +19,7 @@
+ ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ ##
+
+-CP_LIB_DIR = ${with_classpath_install_dir}/share/classpath
++CP_LIB_DIR = ${with_classpath_install_dir}/share/classpath-initial
+ GLIBJ_ZIP = ${CP_LIB_DIR}/glibj.zip
+
+ SUBDIRS = jamvm java gnu sun
+Index: jamvm-1.5.0/src/class.h
+===================================================================
+--- jamvm-1.5.0.orig/src/class.h 2007-12-20 00:06:34.000000000 +0100
++++ jamvm-1.5.0/src/class.h 2007-12-20 00:16:41.000000000 +0100
+@@ -39,11 +39,11 @@
+ separate class files in a directory structure */
+
+ #ifdef USE_ZIP
+-#define JAMVM_CLASSES INSTALL_DIR"/share/jamvm/classes.zip"
+-#define CLASSPATH_CLASSES CLASSPATH_INSTALL_DIR"/share/classpath/glibj.zip"
++#define JAMVM_CLASSES CLASSPATH_INSTALL_DIR"/share/jamvm-initial/classes.zip"
++#define CLASSPATH_CLASSES CLASSPATH_INSTALL_DIR"/share/classpath-initial/glibj.zip"
+ #else
+-#define JAMVM_CLASSES INSTALL_DIR"/share/jamvm/classes"
+-#define CLASSPATH_CLASSES CLASSPATH_INSTALL_DIR"/share/classpath"
++#define JAMVM_CLASSES CLASSPATH_INSTALL_DIR"/share/jamvm-initial/classes"
++#define CLASSPATH_CLASSES CLASSPATH_INSTALL_DIR"/share/classpath-initial"
+ #endif
+
+ #define DFLT_BCP JAMVM_CLASSES":"CLASSPATH_CLASSES
+Index: jamvm-1.5.0/src/dll.c
+===================================================================
+--- jamvm-1.5.0.orig/src/dll.c 2007-12-20 00:01:24.000000000 +0100
++++ jamvm-1.5.0/src/dll.c 2007-12-20 00:03:27.000000000 +0100
+@@ -294,7 +294,7 @@
+ }
+
+ char *getBootDllPath() {
+- return CLASSPATH_INSTALL_DIR"/lib/classpath";
++ return CLASSPATH_INSTALL_DIR"/lib/classpath-initial";
+ }
+
+ char *getDllName(char *name) {
+Index: jamvm-1.5.0/src/Makefile.am
+===================================================================
+--- jamvm-1.5.0.orig/src/Makefile.am 2007-12-20 00:21:37.000000000 +0100
++++ jamvm-1.5.0/src/Makefile.am 2007-12-20 00:21:46.000000000 +0100
+@@ -23,7 +23,7 @@
+ DIST_SUBDIRS = os arch interp
+
+ bin_PROGRAMS = jamvm
+-include_HEADERS = jni.h
++noinst_HEADERS = jni.h
+
+ lib_LTLIBRARIES = libjvm.la
+ noinst_LTLIBRARIES = libcore.la
diff --git a/packages/jamvm/jamvm-initial_1.5.0.bb b/packages/jamvm/jamvm-initial_1.5.0.bb
new file mode 100644
index 0000000000..3369733340
--- /dev/null
+++ b/packages/jamvm/jamvm-initial_1.5.0.bb
@@ -0,0 +1,36 @@
+SUMMARY = "A compact Java Virtual Machine which conforms to the JVM specification version 2."
+HOMEPAGE = "http://jamvm.sourceforge.net/"
+LICENSE = "GPL"
+
+DEPENDS = "zlib-native classpath-initial jikes-initial"
+
+PROVIDES = "virtual/java-initial"
+
+S = "${WORKDIR}/jamvm-${PV}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/jamvm/jamvm-${PV}.tar.gz \
+ file://jamvm_${PV}-initial.patch;patch=1;pnum=1 \
+ "
+
+# This uses 32 bit arm, so force the instruction set to arm, not thumb
+ARM_INSTRUCTION_SET = "arm"
+
+inherit native autotools
+
+EXTRA_OECONF = "\
+ --with-classpath-install-dir=${STAGING_DIR_NATIVE}\
+ --program-suffix=-initial \
+ "
+
+CFLAGS += "-DDEFAULT_MAX_HEAP=16*MB"
+
+do_compile() {
+ oe_runmake \
+ JAVAC=jikes-initial \
+ GLIBJ_ZIP=${STAGING_DATADIR_NATIVE}/classpath-initial/glibj.zip
+}
+
+do_stage_append() {
+ install -d ${STAGING_BINDIR}
+ install -m 0755 java-initial ${STAGING_BINDIR}
+}
diff --git a/packages/jikes/jikes-initial.bb b/packages/jikes/jikes-initial.bb
new file mode 100644
index 0000000000..0e2f4d0748
--- /dev/null
+++ b/packages/jikes/jikes-initial.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Initial Java 1.4-compatible (and not higher) compiler"
+
+DEPENDS = "jikes-native classpath-initial"
+
+SRC_URI = ""
+
+S = "${WORKDIR}"
+
+inherit native
+
+do_configure() {
+ :
+}
+
+do_compile() {
+ echo "#!/bin/sh" > jikes-initial
+ echo "${STAGING_BINDIR_NATIVE}/jikes -bootclasspath ${STAGING_DATADIR_NATIVE}/classpath-initial/glibj.zip \$@" >> jikes-initial
+}
+
+do_stage() {
+ install -d ${STAGING_BINDIR}
+ install -m 0755 jikes-initial ${STAGING_BINDIR}
+}
diff --git a/packages/jikes/jikes-native_1.21.bb b/packages/jikes/jikes-native_1.21.bb
index 2996046639..b95cbfcd75 100644
--- a/packages/jikes/jikes-native_1.21.bb
+++ b/packages/jikes/jikes-native_1.21.bb
@@ -1,7 +1,6 @@
inherit native
require jikes_${PV}.bb
-PROVIDES = "virtual/javac-native"
S = "${WORKDIR}/jikes-${PV}"
do_stage() {