You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ge...@apache.org on 2006/10/25 00:29:13 UTC

svn commit: r467512 - /incubator/harmony/enhanced/drlvm/trunk/README.txt

Author: geirm
Date: Tue Oct 24 15:29:12 2006
New Revision: 467512

URL: http://svn.apache.org/viewvc?view=rev&rev=467512
Log:
HARMONY-1730

(part of)

Fix to DRLVM readme.txt


Modified:
    incubator/harmony/enhanced/drlvm/trunk/README.txt

Modified: incubator/harmony/enhanced/drlvm/trunk/README.txt
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/drlvm/trunk/README.txt?view=diff&rev=467512&r1=467511&r2=467512
==============================================================================
--- incubator/harmony/enhanced/drlvm/trunk/README.txt (original)
+++ incubator/harmony/enhanced/drlvm/trunk/README.txt Tue Oct 24 15:29:12 2006
@@ -1,9 +1,9 @@
-Apache Harmony DRLVM
+         Apache Harmony DRLVM
 ======================================
 
 DRLVM is one of the virtual machines of the Apache Harmony 
-project.  It contains : 
-
+project. It contains: 
+ 
     - VM (VM Core)
     - GC
     - JIT
@@ -16,527 +16,253 @@
 At the time of original initial donation it could do the following with
 Harmony classes:
 
-   - Run Eclipse version 3.1.1: create, edit, compile, and launch Java applications
-   - Provide a self-hosting development environment: the JRE can build itself
-
-The supported configurations are Windows IA-32 and Linux IA-32. 
+    - Run Eclipse, version 3.1.1: create, edit, compile, and launch Java* applications
+    - Provide a self-hosting development environment: the JRE can build itself
+ 
+The supported configurations are Windows* IA-32 and Linux* IA-32. 
 
+ 
 0. QUICK START
 --------------
-This section gives brief instructions on how to build DRLVM on Windows with
-the standard configuration. For more detailed instructions, bundle content description, 
-and other useful information, read further. 
-
-1. Checkout the code for DRLVM from the Apache Harmony subversion repository
-
-   http://svn.apache.org/repos/asf/incubator/harmony/enhanced/drlvm/trunk
-
-   (if you are reading this, you probably already have done that or have a snapshot)
-
-2. Checkout the classlibrary.  This needs to be done first, and build first, as
-   the DRLVM build depends on it.  Again, use a snapshot or get from the SVN repo : 
-   
-      http://svn.apache.org/repos/asf/incubator/harmony/enhanced/drlvm/trunk
-      
-   Follow the instructions to build the classlibrary.
-      
-3. Set the following environment variables:
-   ANT_HOME must point to the location of Apache Ant.  
-   JAVA_HOME must point to the location of the Java Runtime Environment. 
-
-   NOTE: All paths must be absolute. 
-   
-4. In the trunk/build directory, run the following command:
-
-        build.bat update -Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080
-
-   where the last two arguments are optional, and depend on your local environment.
-   
-   The dependencies are downloaded at this stage. As svn and ant are used, please
-   make sure that the SVN and Ant Internet settings are correct. 
-   See steps 3.12.3 and 3.12.4 below for more information.
-
-5. Run the following command:
 
-        build.bat -DBUILD_CFG=release -DCXX=msvc
+For prerequisites and instructions on how to build DRLVM, refer to 
+Getting Started for Users 
+[http://incubator.apache.org/harmony/quickhelp_users.html]. 
 
-6. win_ia32_msvc_release/deploy/jre/bin/ij.exe -version
-   This directory $OS_$ARCH_$CXX_$BUILD_CFG/deploy/jre contains DRLVM you have just built.
-
-7. If building the DRLVM fails, read this README and follow building instructions to the point.
-
-1. DRLVM SOURTS TREE CONTENTS
+  
+1. DRLVM SOURCE TREE CONTENTS
 -----------------------------
-
-This source tree the source files, the building environment,
+ 
+This source tree consists of the source files, the building environment,
 and the smoke tests source files for lightweight testing of the
 DRLVM.
 
-The structure is as follows : 
-
-<EXTRACT_DIR>/trunk/
-       |
-       +---build          - Files required to build the contribution
-       |      
-       \---vm             - VM source files
-           |
-           +- doc         - DRLVM Developer's Guide and Getting Started guide
-           |
-           +- em          - Execution Manager component responsible for dynamic optimization
-           |
-           +- gc          - Garbage Collector component responsible for allocation and
-           |                reclamation of Java* objects in the heap
-           |
-           +- include     - Set of header files containing external specification
-           |                and inter-component interfaces
-           |
-           +- interpreter - Interpreter component
-           |
-           +- jitrino     - Just-in-time Compiler component
-           |
-           +- launcher    - Main function responsible for starting the VM as an application
-           |
-           +- port        - OS and platform porting layer component that, together with
-           |                APR, provides an unified interface to low-level system routines 
-           |                across different platforms
-           |
-           +- tests       - Tests source files
-           |
-           +- vmcore      - Core component responsible for class loading and resolution,
-           |                kernel classes, JNI and JVMTI support, stack support, threading
-           |                support, exception handling, verifier, and a set of other services
-           |                and utilities
-           |
-           +- vmi         - Component responsible for compatibility with the Harmony class
-           |                libraries 
-           |
-           +- vmstart     - Partial implementation of the invocation API for starting
-                            the VM as a dynamic library 
-
+The structure is as follows: 
 
+ <EXTRACT_DIR>/trunk/
+        |
+        +---build          - Files required to build the contribution
+        |      
+        \---vm             - VM source files
+            |
+            +- MMTk        - Garbage collector written in Java that is well recognized in 
+            |                the JVM research community
+            |
+            +- doc         - DRLVM Developer's Guide and Getting Started guide
+            |
+            +- em          - Execution Manager component responsible for dynamic optimization
+            |
+            +- gc_cc       - Stop-the-world adaptive copying/slide compacting garbage
+            |                collector with dynamic algorithm switching
+            |
+            +- gc_gen      - Generational garbage collector
+            |
+            +- gcv4        - Mark-compact garbage collector
+            |
+            +- include     - Set of header files containing external specification
+            |                and inter-component interfaces
+            |
+            +- interpreter - Interpreter component
+            |
+            +- jitrino     - Just-in-time Compiler component
+            |
+            +- launcher    - Main function responsible for starting the VM as an application
+            |
+            +- port        - OS and platform porting layer component that, together with
+            |                APR, provides an unified interface to low-level system routines 
+            |                across different platforms
+            |
+            +- tests       - Tests source files
+            |
+            +- thread      - Thread manager (TM) library aimed to provide threading capabilities 
+            |                for Java virtual machines
+            |
+            +- vmcore      - Core component responsible for class loading and resolution,
+            |                kernel classes, JNI and JVMTI support, stack support, threading
+            |                support, exception handling, verifier, and a set of other services
+            |                and utilities
+            |
+            +- vmi         - Component responsible for compatibility with the Harmony class
+            |                libraries 
+            |
+            \- vmstart     - Partial implementation of the invocation API for starting
+                             the VM as a dynamic library  
+ 
+ 
 2. TOOLS AND ENVIRONMENT VARIABLES REQUIRED FOR THE BUILD
------------------------------------------------------------
-
-To build the Java, C/C++ and assembler source files of DRLVM, install the following 
-software and tools:
-
-+ Java Runtime      - Apache Harmony Execution Environment
-                       http://www-128.ibm.com/developerworks/java/jdk/harmony
-
-+ Class libraries    - Harmony Class Libraries
-                       https://svn.apache.org/repos/asf/incubator/harmony/enhanced/classlib/trunk
-
-+ Apache Ant         - Apache Ant, version 1.6.5 or higher
-                       http://ant.apache.org
-
-+ C/C++ compiler     - on Windows, use one of the following: 
-
-                       + Microsoft 32-bit C/C++ Compiler, version 7 or higher
-                       + Windows platform SDK
-                       + Microsoft Visual Studio .NET 2003 or higher
-                         http://www.microsoft.com/products
-                       + Intel C++ Compiler, version 9.0
-                         http://www.intel.com/cd/software/products/asmo-na/eng/compilers/index.htm
-
-+ Subversion         - Subversion, version 1.3.0 or higher
-                       http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
-
-+ libxml2 on Linux   - libxml2 package 
-
-Additionally, the building system will download
-the following software and libraries from the Internet:
-
-
-+ Xalan-Java         - Xalan-Java, version 2.7.0
-                       http://xml.apache.org/xalan-j/ 
-
-+ Eclipse           - Eclipse* SDK, version 3.1.1
-                       http://download.eclipse.org/eclipse/downloads/
-
-+ Cpp Tasks          - Cpp Tasks collection, version 1.0 beta 3 or higher
-                       http://ant-contrib.sourceforge.net/
-                       http://sourceforge.net/project/showfiles.php?group_id=36177
-
-+ Ant-Contrib        - Ant-Contrib collection of tasks, version 0.6 or higher
-                       http://ant-contrib.sourceforge.net/
-                       http://sourceforge.net/project/showfiles.php?group_id=36177
-
-+ Zlib               - Zlib library, binaries, version 1.2.1 or higher
-                       http://www.zlib.net
+---------------------------------------------------------
 
-+ APR                - Apache Portable Runtime, version 1.2.6
-                       http://apr.apache.org/download.cgi
+For detailed information on tools and environment variabled required for the build, refer to  
+to Getting Started for Contributors
+[http://incubator.apache.org/harmony/quickhelp_contributors.html].
 
-+ APR-util           - APR-util version 1.2.6
-                       http://apr.apache.org/download.cgi
 
-+ APR-iconv          - APR-iconv version 1.1.1
-                       http://apr.apache.org/download.cgi
-
-+ Log4cxx            - latest log4cxx, SVN revision 365029
-                       http://svn.apache.org/repos/asf/logging/log4cxx/trunk
-
-
-NOTE: Your PATH environment variable must include the location of SVN tool set.
-      It is recommended that SVN is run manually at least once prior to build
-      since it may ask to accept the certificates from Apache site in an interactive
-      manner. See 3.12.4 for more details. 
-      
-      Steps 3.12.3 and 3.12.4 describe how proxy settings could be configured.
-
-Alternatively, you can download these resources prior to building DRLVM, unpack these,
-and specify the resulting location by using the environment variables, as described
-in step 3.12.1. 
-
-3. BUILDING DRLVM
------------------
-
-The DRLVM build has been designed as a complete self-hosting environment. 
-However, in order to bootstrap, prepare the Harmony JRE first, 
-as described below:
-
-3.1 Download and install the software mentioned in section 2.
-
-3.2 Set up the Harmony execution environment as a bootstrap environment for building DRLVM:
-
-    3.2.1 Build the Harmony Class Libraries by typing 'ant' in the make/ directory. See README.txt
-          for the Harmony class libraries for more details and troubleshooting.
-
-    3.2.2 Copy the contents of the deploy/jre directory of the class libraries into the deploy/jre
-          directory of the Harmony execution environment. 
-
-    3.2.3 Copy files xalan.jar, xercesImpl.jar, xml-apis.jar and serializer.jar from the Xalan-Java distribution 
-          into the deploy/jre/lib/boot directory.
-
-    3.2.4 Add the following line into deploy/jre/lib/boot/bootclasspath.properties file:
-          bootclasspath.38=serializer.jar
-
-    3.2.5 Download the Beans, Regex, and Math contribution from
-          http://issues.apache.org/jira/browse/HARMONY-39.
-
-    3.2.6 Build the contribution according to the instructions
-          supplied with the package. 
-
-    3.2.7 Copy the obtained regex.jar, math.jar and beans.jar into the deploy/jre/lib/boot directory. 
-
-    3.2.8 On Linux*, you will need to setup the LD_LIBRARY_PATH to point to the deploy/jre/bin directory.
+3. BUILDING VM
+--------------
 
+The current section contains the description of the resulting 
+source tree after the build and gives details on supplementary 
+tasks related to the build. 
+
+For detailed instructions on how to build DRLVM, 
+refer to Getting Started for Contributors
+[http://incubator.apache.org/harmony/quickhelp_contributors.html].
+
+The build produces a set of .jar files, native libraries, and
+support files that constitute the executable JRE. These files 
+are placed in the following directory tree structure:
+
+./build/${OS}_ia32_${CXX}_${BUILD_CFG}
+    |
+    \---deploy
+          |
+          \---jre
+               |
+               +---bin
+               |    |
+               |    +--- java.exe      (if Windows*)
+               |    +--- *.dll         (if Windows*)
+               |    +--- *.pdb         (if Windows*)
+               |    +--- java.bat      (if Windows*)
+               |    +--- eclipse.bat   (if Windows*)
+               |    |
+               |    +--- java          (if Linux*)
+               |    +--- *.so          (if Linux*)
+               |    +--- *.a           (if Linux*)
+               |    +--- java.sh       (if Linux*)
+               |    +--- eclipse.sh    (if Linux*)
+               |    |
+               |    \--- Hello.class
+               |
+               +---doc
+               |    |
+               |    +--- DeveloperGuide.htm
+               |    +--- GettingStarted.htm
+               |    +--- drl.css
+               |    \--- images
+               |          |
+               |          \--- *.gif
+               |
+               +---lib
+               |    |
+               |    +--- org.apache.harmony.eclipse.jdt.launching_1.0.0.jar
+               |    +--- boot
+               |          |
+               |          +--- archive.jar
+               |          +--- bcprov-jdk14-129.jar
+               |          +--- beans.jar
+               |          +--- bootclasspath.properties
+               |          +--- crypto.jar
+               |          +--- icu4j_3_4.jar
+               |          +--- icu4jni-3.4.jar
+               |          +--- kernel.jar
+               |          +--- logging.jar
+               |          +--- luni.jar
+               |          +--- math.jar
+               |          +--- nio.jar
+               |          +--- nio_char.jar
+               |          +--- regex.jar
+               |          +--- resolver.jar
+               |          +--- security.jar
+               |          +--- serializer.jar
+               |          +--- sql.jar
+               |          +--- text.jar
+               |          +--- x_net.jar
+               |          +--- xalan.jar
+               |          +--- xercesImpl.jar
+               |          +--- xml-apis.jar
+               | 
+               +---include
+               |    |
+               |    +--- jni.h
+               |    +--- jni_types.h
+               |    +--- jvmti.h
+               |    \--- jvmti_types.h
+               |
+               \--- README.txt
 
-3.3 Set up the environment by following the instructions below specific for your operating system:
-    
-    On Windows, do the following:
-    
-    set ANT_HOME=<Path to Ant 1.6.5>
-    set JAVA_HOME=<Path to JRE 1.4>    
-    set COMPILER_CFG_SCRIPT=<path to vcvars.bat or iclvars.bat>
-    The default value: C:\Program Files\Intel\Compiler\C++\9.0\IA32\Bin\iclvars.bat>
               
-    On Linux, do the following:
-    
-    export JAVA_HOME=<Path to JRE 1.4>
-    export ANT_HOME=<Path to Ant 1.6.5>
-    export LD_LIBRARY_PATH=<Path to ICC libs>
-    Example: export LD_LIBRARY_PATH="/opt/intel/cc/9.0/lib:$LD_LIBRARY_PATH"
-
-    NOTE: All paths must be absolute. 
+You can now run DRLVM on the command line or under Eclipse*. For details on 
+how to run the VM under Eclipse*, see Getting Started with DRLVM, 
+[http://incubator.apache.org/harmony/subcomponents/drlvm/getting_started.html].  
 
-3.4 Change the working directory to <EXTRACT_DIR>/Harmony/build.
-
-3.5 Download the libraries required for the build, specifically:
+ 3.1 Build the selected components. 
+     
+      You can build any component indicated in the file
+     ./build/make/deploy.xml.
     
-     On Windows:          |  On Linux:
-     ---------------------+--------------------
-     build.bat update     |  build.sh update
- 
-
-3.6 Run the build by starting:
+ 3.2 Clean up the previously built code by executing one of the following:
     
-     On Windows*:         |  On Linux*:
-     ---------------------+--------------------
-     build.bat            |  build.sh
-                                         
-
-3.7 You can switch between the different compilers and modes by using 
-    the environment variables, as follows:
-   
-                            On Windows*:             |  On Linux*:
-                            -------------------------+----------------------------
-    MSVC compiler     :     set CXX=msvc           # |  N/A     
-    Intel(R) compiler :     set CXX=icl              |  export CXX=icc 
-    GCC compiler      :     N/A                      |  export CXX=gcc           # 
-    Release           :     set BUILD_CFG=release  # |  export BUILD_CFG=release #
-    Debug             :     set BUILD_CFG=debug      |  export BUILD_CFG=debug   
-   
-      # - default values
+      On  Windows*:     | On Linux*:
+      ------------------+---------------
+      build.bat clean   | build.sh clean 
+ 
+ 3.3 Update the network resources as required. 
     
-    NOTE: All paths must be absolute. 
-      
-3.8 Locate the resulting binary image. 
-   
-    In case of a successful build, the operating JRE is placed at:
-   
-    ./build/${OS}_ia32_${CXX}_${BUILD_CFG}/deploy/jre/
-   
-    Where OS=(win|lnx) is determined automatically, 
-    CXX and BUILD_CFG are the values you have set.
-
-3.9 Run your application. 
-
-    To run an application called Hello, go to the directory 
-    ./build/${OS}_ia32_${CXX}_${BUILD_CFG}/deploy/jre/bin and type:
-         
-    On Windows :        |  On Linux :
-    --------------------+--------------------
-    ij.exe Hello        | LD_LIBRARY_PATH=$PWD; export LD_LIBRARY_PATH
-                        | ./ij Hello
-
-    On Linux, the convenience script ij.sh configures LD_LIBRARY_PATH 
-    automatically. If you have generated the executable with the Intel(R) C++ compiler,
-    add path to ICC libraries to LD_LIBRARY_PATH too, for example: 
-
-        LD_LIBRARY_PATH="$PWD:/opt/intel/cc/9.0/lib:$LD_LIBRARY_PATH"
-        export LD_LIBRARY_PATH
-        ./ij Hello
-
-    To run Eclipse, set the ECLIPSE_HOME variable to point to the Eclipse 
-    installation directory and type:
-
-    On Windows:        |  On Linux:
-    --------------------+--------------------
-    eclipse.bat         |  eclipse.sh
-
-    The build produces a set of .jar files, native libraries, and
-    support files that constitute the executable JRE. These files are in
-    the following directory tree structure:
+      The build uses external resources from a network, such as APR or Harmony classes.
+      These are downloaded and stored locally during the first launch of the build. 
 
-    ./build/${OS}_ia32_${CXX}_${BUILD_CFG}
-        |
-        \---deploy
-              |
-              \---jre
-                   |
-                   +---bin
-                   |    |
-                   |    +--- ij.exe      (if Windows)
-                   |    +--- *.dll       (if Windows)
-                   |    +--- *.pdb       (if Windows)
-                   |    +--- ij.bat      (if Windows)
-                   |    +--- eclipse.bat (if Windows)
-                   |    |
-                   |    +--- ij          (if Linux)
-                   |    +--- *.so        (if Linux)
-                   |    +--- *.a         (if Linux)
-                   |    +--- ij.sh       (if Linux)
-                   |    +--- eclipse.sh  (if Linux)
-                   |    |
-                   |    \--- Hello.class
-                   |
-                   +---doc
-                   |    |
-                   |    +--- GettingStarted.htm
-                   |    +--- drl.css
-                   |    \--- images
-                   |          |
-                   |          \--- *.gif
-                   |
-                   +---lib
-                   |    |
-                   |    +--- org.apache.harmony.eclipse.jdt.launching_1.0.0.jar
-                   |    +--- boot
-                   |          |
-                   |          +--- archive.jar
-                   |          +--- bcprov-jdk14-129.jar
-                   |          +--- beans.jar
-                   |          +--- bootclasspath.properties
-                   |          +--- crypto.jar
-                   |          +--- icu4j_3_4.jar
-                   |          +--- icu4jni-3.4.jar
-                   |          +--- kernel.jar
-                   |          +--- logging.jar
-                   |          +--- luni.jar
-                   |          +--- math.jar
-                   |          +--- nio.jar
-                   |          +--- nio_char.jar
-                   |          +--- regex.jar
-                   |          +--- resolver.jar
-                   |          +--- security.jar
-                   |          +--- serializer.jar
-                   |          +--- sql.jar
-                   |          +--- text.jar
-                   |          +--- x_net.jar
-                   |          +--- xalan.jar
-                   |          +--- xercesImpl.jar
-                   |          +--- xml-apis.jar
-                   | 
-                   +---include
-                   |    |
-                   |    +--- jni.h
-                   |    +--- jni_types.h
-                   |    +--- jvmti.h
-                   |    \--- jvmti_types.h
-                   |
-                   \--- README.txt
-
-
-3.10 Build the selected components. 
-    
-    You can specify the components in the COMPONENTS Java* system property
-    in a space-separated list. For example:      
-      
-    For Windows* users:
-        build.bat -DCOMPONENTS="vm.jitrino vm.kernel_classes"
-     
-    For Linux* users:
-        sh build.sh -DCOMPONENTS="vm.jitrino vm.kernel_classes"
-        
-    You can build any component indicated in the file
-    ./build/make/deploy.xml.
-   
-3.11 Clean up the previously built code by executing one of the following:
-   
-     On  Windows*:     |  On Linux*:
-     ------------------+----------------
-     build.bat clean   |  build.sh clean 
-
-3.12 Update the network resources as required. 
-   
-     The build uses external resources from a network, such as APR or Harmony classes.
-     These are downloaded and stored locally during the first launch of the build. 
+      3.3.1 Change the resource location settings by editing the property file:
+       
+             On  Windows*:            | On Linux*:
+            --------------------------+--------------------------
+            build\make\win.properties | build/make/lnx.properties              
 
-     3.12.1 Change the resource location settings by editing the property file:
-      
-            On Windows*:
-            build\make\win.properties
-      
-            On Linux*:
-            build/make/lnx.properties
-      
-            Each network resource location is configured in the property file, as follows:
-      
-            remote.<resource name>.archive=<Resource URL>
-      
-            You can override this setting through the system environment, as follows:
-      
-            <resource name>_HOME=<extracted archive location>
-          
             Example:
             The build searches for the Eclipse* archive in its default location on the web:
-       
-            remote.ECLIPSE.archieve=http://eclipse.objectweb.org/downloads/drops/R-3.1.1-200509290840/eclipse-SDK-3.1.1-win32            .zip
-      
+            remote.ECLIPSE.archieve=http://eclipse.objectweb.org/downloads/drops/R-3.1.1-200509290840/eclipse-SDK-3.1.1-win32.zip
             You can specify the Eclipse* installation directory by setting the ECLIPSE_HOME 
             environment variable.  
-      
-     3.12.2 Updating the local version of external resources
-   
+       
+      3.3.2 Update the local version of external resources.
+    
             To download a fresh copy of the external resources, type the following:
+
       
-            On Windows*:        |  On Linux*:
-            --------------------+-----------------
-            build.bat update    |  build.sh update
+            On Windows*:        | On Linux*:
+            --------------------+----------------
+            build.bat update    | build.sh update
      
             External resources are stored in the directory:
       
-                build/pre-copied
-     
-     3.12.3 Configuring Ant proxy settings
-     
-            The proxy server can be configured in one of the following ways:
-            
-            a) Using the system properties http.proxyHost and http.proxyPort, for example:
-            
-                build.bat -Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080
-            
-            b) By specifying values for http.proxyHost and http.proxyPort in win.properties and
-            lnx.properties on Windows* and Linux* correspondingly.
-            
-     3.12.4 Configuring SVN
-
-            To configure the SVN proxy, make sure that the file
-            ~/.subversion/servers on Linux* or the file
-            C:\Documents and Settings\<USER>\Application Data\Subversion\servers
-            on Windows* contain the following lines:
-
-            [global]
-            http-proxy-host = proxy
-            http-proxy-port = 8080
-
-            To check the connection and obtain svn.apache.org SSL certificate run:
-            
-                svn co https://svn.apache.org/repos/asf/incubator/harmony/enhanced/classlib/tags 
-            
-            Select Accept (P)ermanently to save the certificate. This enables the script build.sh 
-            to run SVN in the non-interactive mode.
-            
-            See http://www.apache.org/dev/version-control.html for more info.
-     
-3.13 Clean up the local copy of the external resources by executing the following:
+            build/pre-copied
+      
       
-     On Windows*:             |  On Linux*:
-     -------------------------+-----------------------
-     build.bat clean.update   |  build.sh clean.update
+ 3.4 Clean up the local copy of the external resources by executing the following:
+      
+     On Windows*:             | On Linux*:
+     -------------------------+----------------------
+     build.bat clean.update   | build.sh clean.update
               
-          NOTE: Because  you have executed the target 'update' previously, 
-          this ./build.sh  takes the locally stored resources for building.  
-
-3.14 Troubleshoot the DRLVM build if required. Possible errors include:
-
-     
-     + Command line is over the maximum length with no source file specified.
-
-       This message indicates that the cpptasks.jar file was not patched correctly.
-       The initial cpptasks bundle has a limitation on the command line length, see ant-contrib 
-       bug #1402730 on sourceforge.net for details. To overcome this limitation, 
-       build.xml patches cpptasks.jar before using it for native sources compilation.
-       
-       Solution: follow the instructions below.
-
-        a) Check that you are using Ant version 1.6.5 or higher.
-        b) Remove directories make/tmp/ and pre-copied/.
-        c) Retry updating the build.
-
-
-     + The property C:\work\vm-harmony\vm\tests\smoke\classloader\LogLoader.java.keywords
-       is not defined. The property common.depends.on.targets is not defined.
-
-       These or similar messages may indicate that you have an older version
-       of ant-contrib installed in the $ANT_HOME/lib directory.
-
-       To ensure that it uses correct version of ant-contrib,
-       the build system downloads and uses its own private copy of
-       ant-contrib.jar, in make/tmp directory.
-
-       Solution: upgrade your $ANT_HOME/lib/ant-contrib.jar or
-       delete it and let the build system download a correct version for you.
-
+     NOTE: Because you have executed the target 'update' previously, 
+     this ./build.sh  takes the locally stored resources for building. 
 
 4. RUNNING DRLVM WITH EXTERNAL CLASS LIBRARIES
 ----------------------------------------------
-
-
+ 
 To run DRLVM with third-party external class libraries, do the following:
 
-+ Check that these class libraries comply with the kernel classes interface 
-  and the VMI interfaces, see the description in the directory
-  <EXTRACT_DIR>/Harmony/vm/vmcore/src/kernel_classes. 
+1. Check that these class libraries comply with the kernel classes interface 
+   and the VMI interfaces, see the description in the directory
+   <EXTRACT_DIR>/Harmony/vm/vmcore/src/kernel_classes. 
 
-+ Add external native dynamic libraries (*.dll or *.so files) to the system path or copy 
-  the files into the <EXTRACT_DIR>/deploy/jre/bin directory. 
+2. Add external native dynamic libraries (*.dll or *.so files) to the system path or copy 
+   the files into the <EXTRACT_DIR>/deploy/jre/bin directory. 
 
-+ Add external library class directories or .jar files into the -Xbootclasspath option. 
-
-Example:
-ij -Xbootclasspath/p:c:\external_library\lib\classes.jar MyApp
+3. Add external library class directories or .jar files into the -Xbootclasspath option. 
 
+   Example:
+   ij -Xbootclasspath/p:c:\external_library\lib\classes.jar MyApp
+ 
 
 5. BUILDING AND RUNNING TESTS
 -----------------------------
 
 To build and run the DRLVM tests, execute the following command:
 
-          On Windows*:             |  On Linux*:
-          -------------------------+-----------------------
-          build.bat test           |  build.sh test
+   On Windows*:    |  On Linux*:
+   ----------------+----------------
+   build.bat test  |  build.sh test
 
 
 The test classes are placed in
@@ -545,144 +271,15 @@
 <EXTRACT_DIR>/Harmony/make/%BUILD_CFG%_Windows_ia32_%NATIVE_COMPILER%/semis/vm/test/report.
 
 
-6. BUILDING DRLVM AND RUNNING TESTS IN A SELF-HOSTING ENVIRONMENT
-------------------------------------------------------------------
-
-You can build the DRLVM using the DRLVM itself and Harmony class libraries 
-as a hosting environment for running Ant and the Eclipse* compiler. For that, 
-do the following:
-
-+ Copy the previously built JRE from build/${OS}_ia32_${CXX}_${BUILD_CFG}/deploy/jre
-  to any directory, for example, <HARMONY_JRE>.
-
-+ Set the JAVA_HOME environment variable to point to the <HARMONY_JRE> directory.
-
-+ Run the build by starting:
-    
-     On Windows*:         |  On Linux*:
-     ---------------------+--------------------
-     build.bat            |  build.sh
-
-+ Test the build as described in section 5 above.  
-
-
-7. KNOWN ISSUES
----------------
-
-Building in a self-hosting environment:
-
-    In certain cases, the following error might be produced: 
-    
-        java.lang.InternalError: Error -1 getting next zip entry
-    
-    The error might appear during compilation of the kernel classes in a Harmony self-hosting environment
-    due to the problems with the zip support module. A simple workaround is to restart
-    the build or build the kernel classes separately by using the following command:
-    
-        build.bat -DCOMPONENTS=vm.kernel_classes
-
-General restrictions:
-
-    The number of threads must be lower than 800. 
-
-    Java* heap memory must not be greater than 1.3 GB. 
-
-    Code must not enter the same monitor more than 256 times. 
-
-    The real object hash code has only 6 bits. 
-
-    Currently, the debug scenario cannot run because JPDA is missing. 
-    Note that the supplied documentation might not reflect the current situation. 
-
-Bytecode verifier restrictions:
-
-    The subroutine check is not supported.
-
-    Class structure verification is not supported.
-
-Partially implemented features: 
-
-    Stack overflow is not supported in the JIT-enabled mode.
-    
-    JNI invocation API is only partially implemented.
-    
-    JVMTI has limited support in the JIT-enabled mode. The system
-    supports the following events: 
-        COMPILED_METHOD_LOAD
-        DYNAMIC_CODE_GENERATED
-        EXCEPTION
-    The EXCEPTION event has not been tested for adequate operation yet.
-
-    JVMTI implementation does not provide full argument validity checks.
-    Specifically, the VM might crash when passing invalid Java* objects or JNI
-    identifiers as arguments to JVMTI API functions.
-    
-    JVMTI API function groups for local variable access and stack inspection 
-    in the JIT-enabled mode have not been tested for adequate operation. 
-
-    Class unloading is not supported. 
-
-    Tracing of method calls and instructions is not supported.
-    The following methods have no effect:
-        Runtime.traceInstructions(bool) 
-        Runtime.traceMethodCalls(bool) 
-        
-    Java* assertions are not supported. 
-    
-    The java.lang.ref.SoftReference class implementation does not follow
-    the intent of the specification and is currently equivalent to the
-    java.lang.ref.WeakReference class. 
-
-Jitrino restrictions:
-    
-    Parallel compilation and calls for resolution during a compilation
-    session may lead to re-entering Jitrino from different or the same thread. 
-    In our experience, Jitrino works normally in such cases. However, 
-    certain Jitrino parts, such as timers and certain logging system 
-    features are not designed to be re-enterable. This restriction is not 
-    applicable to normal runs in the default mode with logging and timers 
-    disabled.
-
-    Only a few optimization passes are currently enabled in the high-level optimizer, 
-    namely: code lowering, lazy exceptions, and the static profile estimator. 
-    Guarded devirtualization and inlining are currently enabled in the bytecode translator.
-    Other optimization passes are poorly tested and are disabled by default. 
-
-8. TODO
--------
-
-Provide complete J2SE 1.5.0 support.
-
-Provide Itanium* and EM64T* support.
-
-Improve performance on multi-core processors.
-
-Increase modularity. For example, make the threading functionality
-a separate module.
-
-Implement multi-VM support and VM Local storage.
-
-Complete remaining JVMTI functions for full debugging.
-
-Migrate to common interfaces for JIT and Interpreter.
-
-Improve GC performance. Add concurrent and generational GC
-functionality.
-
-Implement floating point support based solely on x87. In Jitrino,
-floating-point arithmetic depends on SSE and SSE2 scalar
-instructions. Consequently, Jitrino will not work on platforms
-not supporting SSE2, such as Pentium 3.
-
-Enable client-oriented and server-oriented optimization modes 
-in the high-level optimizer. Currently, you can enable the client-oriented 
-optimization mode by using the -Xjit client command-line option. 
-However, this mode might be unstable on heavy workloads.
+6. TROUBLESHOOTING
+-------------------
+ 
+For build troubleshooting information, refer to the Wiki page: 
+http://wiki.apache.org/harmony/DrlvmBuildTroubleshooting
 
-Code re-factoring of JIT bytecode translator is necessary. The
-implementation of the prepass phase in the bytecode translator
-is not optimal due to heavy bug fixing. 
 
-Implement correctly all items pointed in the section Partially
-implemented features in the section KNOWN ISSUES of this file.
+7. TODO
+--------
 
+For information on TODO issues, refer to the Wiki page:
+http://wiki.apache.org/harmony/TODO_List_for_DRLVM