Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

This guide describes how to build the Jikes RVM. The first section is an overview of the Jikes RVM build process and this is followed by your system requirements and a detailed description of the steps required to build JikesRVM.

Overview

Compiling the source code

The majority of the Jikes RVM is written in Java and will be compiled into class files just as with other Java applications. There is also a small portion of the Jikes RVM that is written in C that must be compiled with a C compiler such as gcc. The Jikes RVM uses Ant version 1.6.5 or later as the build tool that orchestrates the build process and executes the steps required in building the Jikes RVM.

Generating source code

The build process also generates Java and C source code based on build time constants such as the selected instruction architecture, garbage collectors and compilers. The generation of the source code occurs prior to the compilation phase.

Bootstrapping the RVM

The Jikes RVM compiles Java class files and produces arrays of code and data. To build itself the Jikes RVM will execute on an existing Java Virtual Machine and compiles a copy of it's own class files into a boot image for the code and data using thw boot image writer tool. The boot image runner is a small C program that loads the boot image and transfers control flow into the Jikes RVM.

Class libraries

The Java class library is the mechanism by which Java programs communicate with the outside world. The Jikes RVM uses the GNU Classpath class library. The developer can either specify a particular version of GNU Classpath to use or they can allow the build process to download and build an appropriate version of the library.

Target Requirements

The Jikes RVM is known to work on certain combinations of instruction architectures, address widths and operating systems. The following table details the targets that have historically been supported and the current status of the support. The target.name column  is the identifier that the Jikes RVM uses to identify this target.

target.name

Operating System

Instruction Architecture

Address Size

Status

ia32-linux

Linux

ia32

32 bits

OK

ia32-osx

OSX

ia32

32 bits

Unknown

ppc32-aix

AIX

PowerPC

32 bits

Unknown

ppc32-linux

Linux

PowerPC

32 bits

OK

ppc32-osx

OSX

PowerPC

32 bits

Not Working

ppc64-aix

AIX

PowerPC

64 bits

Unknown

ppc64-linux

Linux

PowerPC

64 bits

Not Working

x86_64-linux

Linux

ia32

64 bits

OK

There was a port to win32 at one stage but this was never integrated into the main Jikes RVM codebase.

Tool Requirements

Java Virtual Machine

The Jikes RVM requires an existing Java Virtual Machine that conforms to Java 5.0 such as Sun JDK 1.5 or IBM JDK 5.0. Some Java Virtual Machines are unable to cope with compiling the Java class library so it is recomended that you install one of the above mentioned JVMs if they are not already installed on your system. The remaining build instructions assume that this Java Virtual Machine on your path. You can run "java -version" to check you are using the correct JVM.

Ant

Ant version 1.6.5 or later is the tool required to orchestrate the build process. You can download and install the Ant tool from http://ant.apache.org/ if it is not already installed on your system. The remaining build instructions assume that $ANT_HOME/bin is on your path. You can run "ant -version" to check you are running the correct version of ant.

C Tool Chain

The Jikes RVM assumes that the GNU C Tool Chain is present on the system or a tool chain that is reasonably compatible. Most modern *nix environments satisfy this requirement.

Bison

As part of the build process the Jikes RVM uses the bison tool which should be present on most modern *nix environments.

Perl

Perl is trivially used as part of the build process but this requirement may be removed in future releases of Jikes RVM. Perl is also used as part of the regression and performance testing framework.

Awk

GNU Awk is required as part of the regression and performance testing framework but is not required when building Jikes RVM.

  • No labels