1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
1 <!DOCTYPE html> |
2 <html xmlns="http://www.w3.org/1999/xhtml"> |
2 <html> |
3 <head> |
3 <head> |
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
4 <meta charset="utf-8"> |
5 <meta http-equiv="Content-Style-Type" content="text/css" /> |
5 <meta name="generator" content="pandoc"> |
6 <meta name="generator" content="pandoc" /> |
6 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> |
7 <title>OpenJDK Build README</title> |
7 <title>OpenJDK Build README</title> |
8 <style type="text/css">code{white-space: pre;}</style> |
8 <style type="text/css">code{white-space: pre;}</style> |
9 <link rel="stylesheet" href=" ../../jdk/make/data/docs-resources/specs/resources/jdk-default.css" type="text/css" /> |
9 <link rel="stylesheet" href="../../jdk/make/data/docs-resources/specs/resources/jdk-default.css"> |
|
10 <!--[if lt IE 9]> |
|
11 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> |
|
12 <![endif]--> |
10 </head> |
13 </head> |
11 <body> |
14 <body> |
12 <div id="header"> |
15 <header> |
13 <h1 class="title">OpenJDK Build README</h1> |
16 <h1 class="title">OpenJDK Build README</h1> |
14 </div> |
17 </header> |
15 <div class="figure"> |
18 <figure> |
16 <img src="http://openjdk.java.net/images/openjdk.png" alt="OpenJDK" /> |
19 <img src="http://openjdk.java.net/images/openjdk.png" alt="OpenJDK" /><figcaption>OpenJDK</figcaption> |
17 <p class="caption">OpenJDK</p> |
20 </figure> |
18 </div> |
|
19 <hr /> |
21 <hr /> |
20 <h2 id="introduction">Introduction</h2> |
22 <h2 id="introduction">Introduction</h2> |
21 <p>This README file contains build instructions for the <a href="http://openjdk.java.net">OpenJDK</a>. Building the source code for the OpenJDK requires a certain degree of technical expertise.</p> |
23 <p>This README file contains build instructions for the <a href="http://openjdk.java.net">OpenJDK</a>. Building the source code for the OpenJDK requires a certain degree of technical expertise.</p> |
22 <h3 id="this-is-a-major-re-write-of-this-document.">!!!!!!!!!!!!!!! THIS IS A MAJOR RE-WRITE of this document. !!!!!!!!!!!!!</h3> |
24 <h3 id="this-is-a-major-re-write-of-this-document.">!!!!!!!!!!!!!!! THIS IS A MAJOR RE-WRITE of this document. !!!!!!!!!!!!!</h3> |
23 <p>Some Headlines:</p> |
25 <p>Some Headlines:</p> |
147 <p>At a minimum, the <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm">Studio 12 Update 4 Compilers</a> (containing version 5.13 of the C and C++ compilers) is required, including specific patches.</p> |
149 <p>At a minimum, the <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm">Studio 12 Update 4 Compilers</a> (containing version 5.13 of the C and C++ compilers) is required, including specific patches.</p> |
148 <p>The Solaris Studio installation should contain at least these packages:</p> |
150 <p>The Solaris Studio installation should contain at least these packages:</p> |
149 <table> |
151 <table> |
150 <thead> |
152 <thead> |
151 <tr class="header"> |
153 <tr class="header"> |
152 <th align="left">Package</th> |
154 <th style="text-align: left;">Package</th> |
153 <th align="left">Version</th> |
155 <th style="text-align: left;">Version</th> |
154 </tr> |
156 </tr> |
155 </thead> |
157 </thead> |
156 <tbody> |
158 <tbody> |
157 <tr class="odd"> |
159 <tr class="odd"> |
158 <td align="left">developer/solarisstudio-124/backend</td> |
160 <td style="text-align: left;">developer/solarisstudio-124/backend</td> |
159 <td align="left">12.4-1.0.6.0</td> |
161 <td style="text-align: left;">12.4-1.0.6.0</td> |
160 </tr> |
162 </tr> |
161 <tr class="even"> |
163 <tr class="even"> |
162 <td align="left">developer/solarisstudio-124/c++</td> |
164 <td style="text-align: left;">developer/solarisstudio-124/c++</td> |
163 <td align="left">12.4-1.0.10.0</td> |
165 <td style="text-align: left;">12.4-1.0.10.0</td> |
164 </tr> |
166 </tr> |
165 <tr class="odd"> |
167 <tr class="odd"> |
166 <td align="left">developer/solarisstudio-124/cc</td> |
168 <td style="text-align: left;">developer/solarisstudio-124/cc</td> |
167 <td align="left">12.4-1.0.4.0</td> |
169 <td style="text-align: left;">12.4-1.0.4.0</td> |
168 </tr> |
170 </tr> |
169 <tr class="even"> |
171 <tr class="even"> |
170 <td align="left">developer/solarisstudio-124/library/c++-libs</td> |
172 <td style="text-align: left;">developer/solarisstudio-124/library/c++-libs</td> |
171 <td align="left">12.4-1.0.10.0</td> |
173 <td style="text-align: left;">12.4-1.0.10.0</td> |
172 </tr> |
174 </tr> |
173 <tr class="odd"> |
175 <tr class="odd"> |
174 <td align="left">developer/solarisstudio-124/library/math-libs</td> |
176 <td style="text-align: left;">developer/solarisstudio-124/library/math-libs</td> |
175 <td align="left">12.4-1.0.0.1</td> |
177 <td style="text-align: left;">12.4-1.0.0.1</td> |
176 </tr> |
178 </tr> |
177 <tr class="even"> |
179 <tr class="even"> |
178 <td align="left">developer/solarisstudio-124/library/studio-gccrt</td> |
180 <td style="text-align: left;">developer/solarisstudio-124/library/studio-gccrt</td> |
179 <td align="left">12.4-1.0.0.1</td> |
181 <td style="text-align: left;">12.4-1.0.0.1</td> |
180 </tr> |
182 </tr> |
181 <tr class="odd"> |
183 <tr class="odd"> |
182 <td align="left">developer/solarisstudio-124/studio-common</td> |
184 <td style="text-align: left;">developer/solarisstudio-124/studio-common</td> |
183 <td align="left">12.4-1.0.0.1</td> |
185 <td style="text-align: left;">12.4-1.0.0.1</td> |
184 </tr> |
186 </tr> |
185 <tr class="even"> |
187 <tr class="even"> |
186 <td align="left">developer/solarisstudio-124/studio-ja</td> |
188 <td style="text-align: left;">developer/solarisstudio-124/studio-ja</td> |
187 <td align="left">12.4-1.0.0.1</td> |
189 <td style="text-align: left;">12.4-1.0.0.1</td> |
188 </tr> |
190 </tr> |
189 <tr class="odd"> |
191 <tr class="odd"> |
190 <td align="left">developer/solarisstudio-124/studio-legal</td> |
192 <td style="text-align: left;">developer/solarisstudio-124/studio-legal</td> |
191 <td align="left">12.4-1.0.0.1</td> |
193 <td style="text-align: left;">12.4-1.0.0.1</td> |
192 </tr> |
194 </tr> |
193 <tr class="even"> |
195 <tr class="even"> |
194 <td align="left">developer/solarisstudio-124/studio-zhCN</td> |
196 <td style="text-align: left;">developer/solarisstudio-124/studio-zhCN</td> |
195 <td align="left">12.4-1.0.0.1</td> |
197 <td style="text-align: left;">12.4-1.0.0.1</td> |
196 </tr> |
198 </tr> |
197 </tbody> |
199 </tbody> |
198 </table> |
200 </table> |
199 <p>In particular backend 12.4-1.0.6.0 contains a critical patch for the sparc version.</p> |
201 <p>In particular backend 12.4-1.0.6.0 contains a critical patch for the sparc version.</p> |
200 <p>Place the <code>bin</code> directory in <code>PATH</code>.</p> |
202 <p>Place the <code>bin</code> directory in <code>PATH</code>.</p> |
209 <p>The OpenJDK build requires CYGWIN version 1.7.16 or newer. Information about CYGWIN can be obtained from the CYGWIN website at <a href="http://www.cygwin.com">www.cygwin.com</a>.</p> |
211 <p>The OpenJDK build requires CYGWIN version 1.7.16 or newer. Information about CYGWIN can be obtained from the CYGWIN website at <a href="http://www.cygwin.com">www.cygwin.com</a>.</p> |
210 <p>By default CYGWIN doesn't install all the tools required for building the OpenJDK. Along with the default installation, you need to install the following tools.</p> |
212 <p>By default CYGWIN doesn't install all the tools required for building the OpenJDK. Along with the default installation, you need to install the following tools.</p> |
211 <table> |
213 <table> |
212 <thead> |
214 <thead> |
213 <tr class="header"> |
215 <tr class="header"> |
214 <th align="left">Binary Name</th> |
216 <th style="text-align: left;">Binary Name</th> |
215 <th align="left">Category</th> |
217 <th style="text-align: left;">Category</th> |
216 <th align="left">Package</th> |
218 <th style="text-align: left;">Package</th> |
217 <th align="left">Description</th> |
219 <th style="text-align: left;">Description</th> |
218 </tr> |
220 </tr> |
219 </thead> |
221 </thead> |
220 <tbody> |
222 <tbody> |
221 <tr class="odd"> |
223 <tr class="odd"> |
222 <td align="left">ar.exe</td> |
224 <td style="text-align: left;">ar.exe</td> |
223 <td align="left">Devel</td> |
225 <td style="text-align: left;">Devel</td> |
224 <td align="left">binutils</td> |
226 <td style="text-align: left;">binutils</td> |
225 <td align="left">The GNU assembler, linker and binary utilities</td> |
227 <td style="text-align: left;">The GNU assembler, linker and binary utilities</td> |
226 </tr> |
228 </tr> |
227 <tr class="even"> |
229 <tr class="even"> |
228 <td align="left">make.exe</td> |
230 <td style="text-align: left;">make.exe</td> |
229 <td align="left">Devel</td> |
231 <td style="text-align: left;">Devel</td> |
230 <td align="left">make</td> |
232 <td style="text-align: left;">make</td> |
231 <td align="left">The GNU version of the 'make' utility built for CYGWIN</td> |
233 <td style="text-align: left;">The GNU version of the 'make' utility built for CYGWIN</td> |
232 </tr> |
234 </tr> |
233 <tr class="odd"> |
235 <tr class="odd"> |
234 <td align="left">m4.exe</td> |
236 <td style="text-align: left;">m4.exe</td> |
235 <td align="left">Interpreters</td> |
237 <td style="text-align: left;">Interpreters</td> |
236 <td align="left">m4</td> |
238 <td style="text-align: left;">m4</td> |
237 <td align="left">GNU implementation of the traditional Unix macro processor</td> |
239 <td style="text-align: left;">GNU implementation of the traditional Unix macro processor</td> |
238 </tr> |
240 </tr> |
239 <tr class="even"> |
241 <tr class="even"> |
240 <td align="left">cpio.exe</td> |
242 <td style="text-align: left;">cpio.exe</td> |
241 <td align="left">Utils</td> |
243 <td style="text-align: left;">Utils</td> |
242 <td align="left">cpio</td> |
244 <td style="text-align: left;">cpio</td> |
243 <td align="left">A program to manage archives of files</td> |
245 <td style="text-align: left;">A program to manage archives of files</td> |
244 </tr> |
246 </tr> |
245 <tr class="odd"> |
247 <tr class="odd"> |
246 <td align="left">gawk.exe</td> |
248 <td style="text-align: left;">gawk.exe</td> |
247 <td align="left">Utils</td> |
249 <td style="text-align: left;">Utils</td> |
248 <td align="left">awk</td> |
250 <td style="text-align: left;">awk</td> |
249 <td align="left">Pattern-directed scanning and processing language</td> |
251 <td style="text-align: left;">Pattern-directed scanning and processing language</td> |
250 </tr> |
252 </tr> |
251 <tr class="even"> |
253 <tr class="even"> |
252 <td align="left">file.exe</td> |
254 <td style="text-align: left;">file.exe</td> |
253 <td align="left">Utils</td> |
255 <td style="text-align: left;">Utils</td> |
254 <td align="left">file</td> |
256 <td style="text-align: left;">file</td> |
255 <td align="left">Determines file type using 'magic' numbers</td> |
257 <td style="text-align: left;">Determines file type using 'magic' numbers</td> |
256 </tr> |
258 </tr> |
257 <tr class="odd"> |
259 <tr class="odd"> |
258 <td align="left">zip.exe</td> |
260 <td style="text-align: left;">zip.exe</td> |
259 <td align="left">Archive</td> |
261 <td style="text-align: left;">Archive</td> |
260 <td align="left">zip</td> |
262 <td style="text-align: left;">zip</td> |
261 <td align="left">Package and compress (archive) files</td> |
263 <td style="text-align: left;">Package and compress (archive) files</td> |
262 </tr> |
264 </tr> |
263 <tr class="even"> |
265 <tr class="even"> |
264 <td align="left">unzip.exe</td> |
266 <td style="text-align: left;">unzip.exe</td> |
265 <td align="left">Archive</td> |
267 <td style="text-align: left;">Archive</td> |
266 <td align="left">unzip</td> |
268 <td style="text-align: left;">unzip</td> |
267 <td align="left">Extract compressed files in a ZIP archive</td> |
269 <td style="text-align: left;">Extract compressed files in a ZIP archive</td> |
268 </tr> |
270 </tr> |
269 <tr class="odd"> |
271 <tr class="odd"> |
270 <td align="left">free.exe</td> |
272 <td style="text-align: left;">free.exe</td> |
271 <td align="left">System</td> |
273 <td style="text-align: left;">System</td> |
272 <td align="left">procps</td> |
274 <td style="text-align: left;">procps</td> |
273 <td align="left">Display amount of free and used memory in the system</td> |
275 <td style="text-align: left;">Display amount of free and used memory in the system</td> |
274 </tr> |
276 </tr> |
275 </tbody> |
277 </tbody> |
276 </table> |
278 </table> |
277 <p>Note that the CYGWIN software can conflict with other non-CYGWIN software on your Windows system. CYGWIN provides a <a href="http://cygwin.com/faq/faq.using.html">FAQ</a> for known issues and problems, of particular interest is the section on <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda">BLODA (applications that interfere with CYGWIN)</a>.</p> |
279 <p>Note that the CYGWIN software can conflict with other non-CYGWIN software on your Windows system. CYGWIN provides a <a href="http://cygwin.com/faq/faq.using.html">FAQ</a> for known issues and problems, of particular interest is the section on <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda">BLODA (applications that interfere with CYGWIN)</a>.</p> |
278 <h6 id="mingwmsys">MinGW/MSYS</h6> |
280 <h6 id="mingwmsys">MinGW/MSYS</h6> |
559 This is caused by a missing libstdc++.a library. This is installed as part of a specific package (e.g. libstdc++.so.devel.386). By default some 64-bit Linux versions (e.g. Fedora) only install the 64-bit version of the libstdc++ package. Various parts of the JDK build require a static link of the C++ runtime libraries to allow for maximum portability of the built images.</p></li> |
561 This is caused by a missing libstdc++.a library. This is installed as part of a specific package (e.g. libstdc++.so.devel.386). By default some 64-bit Linux versions (e.g. Fedora) only install the 64-bit version of the libstdc++ package. Various parts of the JDK build require a static link of the C++ runtime libraries to allow for maximum portability of the built images.</p></li> |
560 <li><p><strong>Linux Error Message: <code>cannot restore segment prot after reloc</code></strong><br /> |
562 <li><p><strong>Linux Error Message: <code>cannot restore segment prot after reloc</code></strong><br /> |
561 This is probably an issue with SELinux (See <a href="http://en.wikipedia.org/wiki/SELinux">SELinux on Wikipedia</a>). Parts of the VM is built without the <code>-fPIC</code> for performance reasons.</p></li> |
563 This is probably an issue with SELinux (See <a href="http://en.wikipedia.org/wiki/SELinux">SELinux on Wikipedia</a>). Parts of the VM is built without the <code>-fPIC</code> for performance reasons.</p></li> |
562 </ul> |
564 </ul> |
563 <p>To completely disable SELinux:</p> |
565 <p>To completely disable SELinux:</p> |
564 <ol style="list-style-type: decimal"> |
566 <ol type="1"> |
565 <li><code>$ su root</code></li> |
567 <li><code>$ su root</code></li> |
566 <li><code># system-config-securitylevel</code></li> |
568 <li><code># system-config-securitylevel</code></li> |
567 <li><code>In the window that appears, select the SELinux tab</code></li> |
569 <li><code>In the window that appears, select the SELinux tab</code></li> |
568 <li><code>Disable SELinux</code></li> |
570 <li><code>Disable SELinux</code></li> |
569 </ol> |
571 </ol> |
570 <p>Alternatively, instead of completely disabling it you could disable just this one check.</p> |
572 <p>Alternatively, instead of completely disabling it you could disable just this one check.</p> |
571 <ol style="list-style-type: decimal"> |
573 <ol type="1"> |
572 <li>Select System->Administration->SELinux Management</li> |
574 <li>Select System->Administration->SELinux Management</li> |
573 <li>In the SELinux Management Tool which appears, select "Boolean" from the menu on the left</li> |
575 <li>In the SELinux Management Tool which appears, select "Boolean" from the menu on the left</li> |
574 <li>Expand the "Memory Protection" group</li> |
576 <li>Expand the "Memory Protection" group</li> |
575 <li>Check the first item, labeled "Allow all unconfined executables to use libraries requiring text relocation ..."</li> |
577 <li>Check the first item, labeled "Allow all unconfined executables to use libraries requiring text relocation ..."</li> |
576 </ol> |
578 </ol> |
614 <p>Compilation problems with newer or different C/C++ compilers is a common problem. Similarly, compilation problems related to changes to the <code>/usr/include</code> or system header files is also a common problem with older, newer, or unreleased OS versions. Please report these types of problems as bugs so that they can be dealt with accordingly.</p> |
616 <p>Compilation problems with newer or different C/C++ compilers is a common problem. Similarly, compilation problems related to changes to the <code>/usr/include</code> or system header files is also a common problem with older, newer, or unreleased OS versions. Please report these types of problems as bugs so that they can be dealt with accordingly.</p> |
615 <p>Bootstrap JDK: JDK 8</p> |
617 <p>Bootstrap JDK: JDK 8</p> |
616 <table> |
618 <table> |
617 <thead> |
619 <thead> |
618 <tr class="header"> |
620 <tr class="header"> |
619 <th align="left">Base OS and Architecture</th> |
621 <th style="text-align: left;">Base OS and Architecture</th> |
620 <th align="left">OS</th> |
622 <th style="text-align: left;">OS</th> |
621 <th align="left">C/C++ Compiler</th> |
623 <th style="text-align: left;">C/C++ Compiler</th> |
622 <th align="left">Processors</th> |
624 <th style="text-align: left;">Processors</th> |
623 <th align="left">RAM Minimum</th> |
625 <th style="text-align: left;">RAM Minimum</th> |
624 <th align="left">DISK Needs</th> |
626 <th style="text-align: left;">DISK Needs</th> |
625 </tr> |
627 </tr> |
626 </thead> |
628 </thead> |
627 <tbody> |
629 <tbody> |
628 <tr class="odd"> |
630 <tr class="odd"> |
629 <td align="left">Linux X86 (32-bit) and X64 (64-bit)</td> |
631 <td style="text-align: left;">Linux X86 (32-bit) and X64 (64-bit)</td> |
630 <td align="left">Oracle Enterprise Linux 6.4</td> |
632 <td style="text-align: left;">Oracle Enterprise Linux 6.4</td> |
631 <td align="left">gcc 4.9.2</td> |
633 <td style="text-align: left;">gcc 4.9.2</td> |
632 <td align="left">2 or more</td> |
634 <td style="text-align: left;">2 or more</td> |
633 <td align="left">1 GB</td> |
635 <td style="text-align: left;">1 GB</td> |
634 <td align="left">6 GB</td> |
636 <td style="text-align: left;">6 GB</td> |
635 </tr> |
637 </tr> |
636 <tr class="even"> |
638 <tr class="even"> |
637 <td align="left">Solaris SPARCV9 (64-bit)</td> |
639 <td style="text-align: left;">Solaris SPARCV9 (64-bit)</td> |
638 <td align="left">Solaris 11 Update 1</td> |
640 <td style="text-align: left;">Solaris 11 Update 1</td> |
639 <td align="left">Studio 12 Update 4 + patches</td> |
641 <td style="text-align: left;">Studio 12 Update 4 + patches</td> |
640 <td align="left">4 or more</td> |
642 <td style="text-align: left;">4 or more</td> |
641 <td align="left">4 GB</td> |
643 <td style="text-align: left;">4 GB</td> |
642 <td align="left">8 GB</td> |
644 <td style="text-align: left;">8 GB</td> |
643 </tr> |
645 </tr> |
644 <tr class="odd"> |
646 <tr class="odd"> |
645 <td align="left">Solaris X64 (64-bit)</td> |
647 <td style="text-align: left;">Solaris X64 (64-bit)</td> |
646 <td align="left">Solaris 11 Update 1</td> |
648 <td style="text-align: left;">Solaris 11 Update 1</td> |
647 <td align="left">Studio 12 Update 4 + patches</td> |
649 <td style="text-align: left;">Studio 12 Update 4 + patches</td> |
648 <td align="left">4 or more</td> |
650 <td style="text-align: left;">4 or more</td> |
649 <td align="left">4 GB</td> |
651 <td style="text-align: left;">4 GB</td> |
650 <td align="left">8 GB</td> |
652 <td style="text-align: left;">8 GB</td> |
651 </tr> |
653 </tr> |
652 <tr class="even"> |
654 <tr class="even"> |
653 <td align="left">Windows X86 (32-bit)</td> |
655 <td style="text-align: left;">Windows X86 (32-bit)</td> |
654 <td align="left">Windows Server 2012 R2 x64</td> |
656 <td style="text-align: left;">Windows Server 2012 R2 x64</td> |
655 <td align="left">Microsoft Visual Studio C++ 2013 Professional Edition</td> |
657 <td style="text-align: left;">Microsoft Visual Studio C++ 2013 Professional Edition</td> |
656 <td align="left">2 or more</td> |
658 <td style="text-align: left;">2 or more</td> |
657 <td align="left">2 GB</td> |
659 <td style="text-align: left;">2 GB</td> |
658 <td align="left">6 GB</td> |
660 <td style="text-align: left;">6 GB</td> |
659 </tr> |
661 </tr> |
660 <tr class="odd"> |
662 <tr class="odd"> |
661 <td align="left">Windows X64 (64-bit)</td> |
663 <td style="text-align: left;">Windows X64 (64-bit)</td> |
662 <td align="left">Windows Server 2012 R2 x64</td> |
664 <td style="text-align: left;">Windows Server 2012 R2 x64</td> |
663 <td align="left">Microsoft Visual Studio C++ 2013 Professional Edition</td> |
665 <td style="text-align: left;">Microsoft Visual Studio C++ 2013 Professional Edition</td> |
664 <td align="left">2 or more</td> |
666 <td style="text-align: left;">2 or more</td> |
665 <td align="left">2 GB</td> |
667 <td style="text-align: left;">2 GB</td> |
666 <td align="left">6 GB</td> |
668 <td style="text-align: left;">6 GB</td> |
667 </tr> |
669 </tr> |
668 <tr class="even"> |
670 <tr class="even"> |
669 <td align="left">Mac OS X X64 (64-bit)</td> |
671 <td style="text-align: left;">Mac OS X X64 (64-bit)</td> |
670 <td align="left">Mac OS X 10.9 "Mavericks"</td> |
672 <td style="text-align: left;">Mac OS X 10.9 "Mavericks"</td> |
671 <td align="left">Xcode 6.3 or newer</td> |
673 <td style="text-align: left;">Xcode 6.3 or newer</td> |
672 <td align="left">2 or more</td> |
674 <td style="text-align: left;">2 or more</td> |
673 <td align="left">4 GB</td> |
675 <td style="text-align: left;">4 GB</td> |
674 <td align="left">6 GB</td> |
676 <td style="text-align: left;">6 GB</td> |
675 </tr> |
677 </tr> |
676 </tbody> |
678 </tbody> |
677 </table> |
679 </table> |
678 <hr /> |
680 <hr /> |
679 <h3 id="specific-developer-build-environments">Specific Developer Build Environments</h3> |
681 <h3 id="specific-developer-build-environments">Specific Developer Build Environments</h3> |