Mercurial > hg > release > icedtea7-forest-2.5
changeset 899:50f2b3cacf77 ppc-aix-port-b03
Updated README to reflect the current status of the project (mainly the availability of a mixed-mode VM on Linux and AIX)
Also added an automatically generated TOC which should hopefully make the document more readable.
author | simonis |
---|---|
date | Mon, 17 Dec 2012 19:09:59 +0100 |
parents | 06179726206f |
children | baa81e95e8e6 |
files | README-ppc.html |
diffstat | 1 files changed, 267 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/README-ppc.html Mon Nov 12 09:30:36 2012 +0100 +++ b/README-ppc.html Mon Dec 17 19:09:59 2012 +0100 @@ -1,9 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> -<head> - <title>OpenJDK PowerPC/AIX Port</title> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> +<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"> +<head> + <title>OpenJDK PowerPC/AIX Port</title> <style type="text/css" id="internalStyle"> pre.terminal { display: table; @@ -14,19 +15,239 @@ border-color: darkgray; margin: 8px 0px 5px 0px; padding: 2px; - width: auto; - overflow: auto; + width: auto; + overflow: auto; font-family: monospace; } + div.toc { + background-color: #ffffee; + border-bottom: 1px solid #cccccc; + border-top: 1px solid #cccccc; + border-left: 1px solid #cccccc; + border-right: 1px solid #cccccc; + padding: 5px; + position: fixed; + top: 10px; + right: 10px; + margin: 0px 5px 5px 5px; + line-height: 1.5em; + font-size: 80%; + } + div.tocHeader { + float: right; + } + div.toc ul { + list-style: none; + margin-left: 10px; + padding: 0; + } + + div.tocBody > ul > li { + counter-reset: toc2_counter toc3_counter toc4_counter toc5_counter toc6_counter; + } + div.tocBody > ul ul > li { + counter-reset: toc3_counter toc4_counter toc5_counter toc6_counter; + } + div.tocBody > ul ul ul > li { + counter-reset: toc4_counter toc5_counter toc6_counter; + } + div.tocBody > ul ul ul ul > li { + counter-reset: toc5_counter toc6_counter; + } + div.tocBody > ul ul ul ul ul > li { + counter-reset: toc6_counter; + } + div.tocBody > ul ul > li:before { + content: counter(toc2_counter) "\0000a0"; + counter-increment: toc2_counter; + } + div.tocBody > ul ul ul > li:before { + content: counter(toc2_counter) "." counter(toc3_counter) "\0000a0"; + counter-increment: toc3_counter; + } + div.tocBody > ul ul ul ul > li:before { + content: counter(toc2_counter) "." counter(toc3_counter) "." counter(toc4_counter) "\0000a0"; + counter-increment: toc4_counter; + } + div.tocBody > ul ul ul ul ul > li:before { + content: counter(toc2_counter) "." counter(toc3_counter) "." counter(toc4_counter) "." counter(toc5_counter) "\0000a0"; + counter-increment: toc5_counter; + } + div.tocBody > ul ul ul ul ul ul > li:before { + content: counter(toc2_counter) "." counter(toc3_counter) "." counter(toc4_counter) "." counter(toc5_counter) "." counter(toc6_counter) "\0000a0"; + counter-increment: toc6_counter; + } + + + body { + counter-reset: h2_counter h3_counter h4_counter h5_counter h6_counter; + } + h1 { + counter-reset: h2_counter h3_counter h4_counter h5_counter h6_counter; + } + h2 { + counter-reset: h3_counter h4_counter h5_counter h6_counter; + } + h3 { + counter-reset: h4_counter h5_counter h6_counter; + } + h4 { + counter-reset: h5_counter h6_counter; + } + h5 { + counter-reset: h6_counter; + } + h2:before { + content: counter(h2_counter) "\0000a0"; + counter-increment: h2_counter; + } + h3:before { + content: counter(h2_counter) "." counter(h3_counter) "\0000a0"; + counter-increment: h3_counter; + } + h4:before { + content: counter(h2_counter) "." counter(h3_counter) "." counter(h4_counter) "\0000a0"; + counter-increment: h4_counter; + } + h5:before { + content: counter(h2_counter) "." counter(h3_counter) "." counter(h4_counter) "." counter(h5_counter) "\0000a0"; + counter-increment: h5_counter; + } + h6:before { + content: counter(h2_counter) "." counter(h3_counter) "." counter(h4_counter) "." counter(h5_counter) "." counter(h6_counter) "\0000a0"; + counter-increment: h6_counter; + } </style> + <script> + function findElements(node, filter) { + var result = new Array(); + var children = node.childNodes; + if (children.length === 0) return result; + for (var i=0; children[i]; i++) { + var child = children[i]; + if (filter(child)) { + result.push(child); + result = result.concat(findElements(child, filter)); + } + } + return result; + } + + function headingFilter(node) { + if (node.nodeType === 1 /*Node.ELEMENT_NODE*/ && /[hH][1-6]/.test(node.nodeName)) { + return true; + } + return false; + } + + function showOrHideTOC(tocID, buttonID) { + var toc = document.getElementById(tocID); + var button = document.getElementById(buttonID); + if (toc.style.display === "none") { + toc.style.display="block"; + // Use a Unicode "minus" here, to make it the same width like a "plus" + // (see http://en.wikipedia.org/wiki/Minus_sign#Character_codes) + button.innerHTML = "[\u2212] "; + } else { + toc.style.display="none"; + button.innerHTML = "[+] "; + } + } + + function createTOCHeader() { + var tocHeader = document.createElement('div'); + tocHeader.setAttribute("class", "tocHeader"); + var a = document.createElement('a'); + a.setAttribute("href","#"); + a.setAttribute("onclick","showOrHideTOC('_TOC_BODY_', '_TOC_EXPAND_BUTTON_'); return false;"); + var span = document.createElement('span'); + span.setAttribute("id", "_TOC_EXPAND_BUTTON_"); + span.appendChild(document.createTextNode("[\u2212] ")); + a.appendChild(span); + a.appendChild(document.createTextNode("Table of Contents")); + tocHeader.appendChild(a); + return tocHeader; + } + + function createTOCBody() { + var tocBody = document.createElement('div'); + tocBody.setAttribute("class", "tocBody"); + tocBody.setAttribute("id", "_TOC_BODY_"); + return tocBody; + } + + function createTOCElement(tocHeader, tocBody) { + var toc = document.createElement('div'); + toc.setAttribute("class", "toc"); + toc.appendChild(tocHeader); + toc.appendChild(tocBody); + return toc; + } + + function insertAnchor(heading, anchor) { + var tag = document.createElement('a'); + tag.setAttribute('name', anchor); + heading.parentNode.insertBefore(tag, heading); + } + + function createLink(heading, anchor) { + var li = document.createElement('li'); + var a = document.createElement('a'); + a.setAttribute('href', "#" + anchor); + a.innerHTML = heading.innerHTML; + li.appendChild(a); + return li; + } + + function createTOC(createIndex) { + if(typeof(createIndex)==='undefined') createIndex = false; + var headings = findElements(document.body, headingFilter); + var tocHeader = createTOCHeader(); + var tocBody = createTOCBody(); + var toc = createTOCElement(tocHeader, tocBody); + var ul = document.createElement('ul'); + tocBody.appendChild(ul); + var currentLevel = 1; + for (var i=0; headings[i]; i++) { + var heading = headings[i]; + var anchor = "_TOC_ANCHOR_" + i + "_"; + // Create anchor just before the heading + insertAnchor(heading, anchor); + // Create the corresponding TOC entry which links right to 'anchor' + var level = parseInt(heading.nodeName.charAt(1), 10); + while (level > currentLevel) { + var _ul = document.createElement('ul'); + if (ul.lastChild === null) { + ul.appendChild(_ul); + } + else { + ul.lastChild.appendChild(_ul); + } + ul = _ul; + currentLevel++; + } + while (level < currentLevel) { + do { + ul = ul.parentNode; + } while (ul.nodeName !== "UL"); + currentLevel--; + } + ul.appendChild(createLink(heading, anchor)); + } + document.body.insertBefore(toc, document.body.firstChild); + } + </script> </head> -<body> +<body onload="createTOC();"> <h1>OpenJDK PowerPC Port</h1> <p> -This file contains some information about the <a href="http://openjdk.java.net/projects/ppc-aix-port"> -OpenJDK PowerPC Port for Linux and AIX</a>. +This file contains some additional build instructions for +the <a href="http://openjdk.java.net/projects/ppc-aix-port"> OpenJDK PowerPC +Port for Linux and AIX</a>. It complements the general +OpenJDK <a href="http://hg.openjdk.java.net/ppc-aix-port/jdk7u/raw-file/tip/README-builds.html"> +README-builds.html</a> file. </p> <h2>Building on Linux/PPC64</h2> @@ -34,25 +255,35 @@ <p> Currently, i.e. all versions after revision <a href="http://hg.openjdk.java.net/ppc-aix-port/jdk7u/file/ppc-aix-port-b01"><em>ppc-aix-port-b01</em></a>, -should successfully build and run on Linux/PPC64. While the default build -currently creates an interpreter-only version of the VM which is in general -about an order of magnitude slower than a corresponding server VM with JIT -compiler, it is still fully functional (e.g. it passes JVM98) and can even be -used to bootstrap itself. Our current build system is a Power6 box running SLES -10.3 with gcc version 4.1.2 (in general, more recent Linux distributions should -work as well). +should successfully build and run on Linux/PPC64. Passing +<code>CORE_BUILD=true</code> on the build comamnd line will instruct the build +system to create an interpreter-only version of the VM which is in general about +an order of magnitude slower than a corresponding server VM with JIT +compiler. But it is still fully functional (e.g. it passes JVM98) and can even +be used to bootstrap itself. Starting with +revision <a href="http://hg.openjdk.java.net/ppc-aix-port/jdk7u/file/ppc-aix-port-b03"><em>ppc-aix-port-b03</em></a>, +it is possible to build without <code>CORE_BUILD=true</code> and create a +JIT-enabled version of the VM (containing the C2 "<em>Server</em>" JIT +compiler). +</p> + +<p> +Our current build system is a Power6 box running +SLES 10.3 with gcc version 4.1.2 (in general, more recent Linux distributions +should work as well). </p> <h3>Building with the OpenJDK Linux/PPC64 port as bootstrap JDK</h3> <p> -A precompiled build of <em>ppc-aix-port-b01</em> is available -for <a href="http://cr.openjdk.java.net/~simonis/ppc-aix-port/bootstrap/openjdk1.7.0-ppc-aix-port-linux-ppc64-b01.tar.bz2">download</a>. +A precompiled build of <em>ppc-aix-port-b03</em> is available +for <a href="http://cr.openjdk.java.net/~simonis/ppc-aix-port/bootstrap/openjdk1.7.0-ppc-aix-port-linux-ppc64-b03.tar.bz2">download</a>. With it and together with the other build dependencies fulfilled as described in the main <a href="http://hg.openjdk.java.net/ppc-aix-port/jdk7u/raw-file/tip/README-builds.html"> README-builds.html</a> file you can build a debug version of the JDK from the -top-level source directory with the following command line: +top-level source directory with the following command line (additionally +pass <code>CORE_BUILD=true</code> to build an interpreter-only version of the VM): </p> <pre class="terminal"> @@ -67,7 +298,6 @@ VERBOSE=true \ CC_INTERP=true \ OPENJDK=true \ - CORE_BUILD=true \ debug_build 2>&1 | tee build_ppc-aix-port_dbg.log </pre> @@ -137,8 +367,8 @@ <pre class="terminal"> > build/linux-ppc64-debug/bin/java -showversion HelloWorld openjdk version "1.7.0-internal" -OpenJDK Runtime Environment (build 1.7.0-internal-jvmtests_2012_07_24_22_30-b00) -OpenJDK 64-Bit VM (build 23.2-b04, interpreted mode) +OpenJDK Runtime Environment (build 1.7.0-internal-jvmtests_2012_12_16_22_14-b00) +OpenJDK 64-Bit Server VM (build 23.2-b04, mixed mode) HelloWorld </pre> @@ -148,18 +378,23 @@ <p> Currently, i.e. all versions after revision <a href="http://hg.openjdk.java.net/ppc-aix-port/jdk7u/file/ppc-aix-port-b02"><em>ppc-aix-port-b02</em></a>, -should successfully build and run on AIX. While the default build -currently creates an interpreter-only version of the VM which is in general about +should successfully build and run on AIX. Passing +<code>CORE_BUILD=true</code> on the build comamnd line will instruct the build +system to create an interpreter-only version of the VM which is in general about an order of magnitude slower than a corresponding server VM with JIT -compiler, it is still fully functional (e.g. it passes JVM98) and can even be -used to bootstrap itself. +compiler. But it is still fully functional (e.g. it passes JVM98) and can even +be used to bootstrap itself. Starting with +revision <a href="http://hg.openjdk.java.net/ppc-aix-port/jdk7u/file/ppc-aix-port-b03"><em>ppc-aix-port-b03</em></a>, +it is possible to build without <code>CORE_BUILD=true</code> and create a +JIT-enabled version of the VM (containing the C2 "<em>Server</em>" JIT +compiler). </p> <h3>Building with the OpenJDK AIX/PPC64 port as bootstrap JDK</h3> <p> -A precompiled build of <em>ppc-aix-port-b02</em> is available -for <a href="http://cr.openjdk.java.net/~simonis/ppc-aix-port/bootstrap/openjdk1.7.0-ppc-aix-port-aix-ppc64-b02.tar.bz2">download</a>. +A precompiled build of <em>ppc-aix-port-b03</em> is available +for <a href="http://cr.openjdk.java.net/~simonis/ppc-aix-port/bootstrap/openjdk1.7.0-ppc-aix-port-aix-ppc64-b03.tar.bz2">download</a>. We recommend using it or a self compiled OpenJDK version for AIX as bootstrap JDK. </p> @@ -200,7 +435,7 @@ <pre class="terminal"> > lslpp -l X11.adt.ext - Fileset Level State Description + Fileset Level State Description ---------------------------------------------------------------------------- Path: /usr/lib/objrepos X11.adt.ext 7.1.0.0 COMMITTED AIXwindows Application @@ -343,7 +578,8 @@ <p> If you prepend <code>/opt/freeware/bin</code> to you <code>PATH</code> environment variable you should be finally able to start the build with the -following command line: +following command line (additionally pass <code>CORE_BUILD=true</code> to build +an interpreter-only version of the VM): </p> <pre class="terminal"> @@ -356,7 +592,6 @@ VERBOSE=true \ CC_INTERP=true \ OPENJDK=true \ - CORE_BUILD=true \ HOTSPOT_BUILD_JOBS=8 \ PARALLEL_COMPILE_JOBS=8 2>&1 | tee /priv/d046063/OpenJDK/output-ppc-aix-port-debug.log </pre> @@ -381,8 +616,8 @@ <pre class="terminal"> > build/aix-ppc64-debug/bin/java -showversion HelloWorld openjdk version "1.7.0-internal-debug" -OpenJDK Runtime Environment (build 1.7.0-internal-debug-d046063_2012_10_25_12_45-b00) -OpenJDK 64-Bit VM (build 23.2-b04-jvmg, interpreted mode) +OpenJDK Runtime Environment (build 1.7.0-internal-jvmtests_2012_12_16_23_22-b00) +OpenJDK 64-Bit Server VM (build 23.2-b04, mixed mode) HelloWorld </pre>