summaryrefslogtreecommitdiff
path: root/doc/gccgo_install.html
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2009-12-29 14:59:08 -0800
committerIan Lance Taylor <iant@golang.org>2009-12-29 14:59:08 -0800
commiteee0fc9b14bf37c6036ed7ddf74ef701dbc10e65 (patch)
treee1e0f55dad4869382183c4c63dc2b2bdee3ee89c /doc/gccgo_install.html
parent897c15d8527bf66f4e4f5659ce73d7fd93cd0435 (diff)
downloadgo-eee0fc9b14bf37c6036ed7ddf74ef701dbc10e65.tar.gz
Document how to build gccgo to use gold.
This provides full support for discontiguous stacks. R=r CC=golang-dev http://codereview.appspot.com/183088
Diffstat (limited to 'doc/gccgo_install.html')
-rw-r--r--doc/gccgo_install.html36
1 files changed, 31 insertions, 5 deletions
diff --git a/doc/gccgo_install.html b/doc/gccgo_install.html
index 587e4dd8f..5766f9114 100644
--- a/doc/gccgo_install.html
+++ b/doc/gccgo_install.html
@@ -44,20 +44,46 @@ run).
</p>
<p>
+On x86 GNU/Linux systems the <code>gccgo</code> compiler is able to
+use a small discontiguous stack for goroutines. This permits programs
+to run many more goroutines, since each goroutine can use a relatively
+small stack. Doing this requires using a development version of
+the <code>gold</code> linker. The easiest way to do this is to build
+the GNU binutils, using <code>--enable-gold</code> when you run
+the <code>configure</code> script, and to
+use <code>--with-ld=GOLD_BINARY</code> when you
+configure <code>gccgo</code>. A typical sequence would look like
+this (you can replace <code>/opt/gold</code> with any directory to
+which you have write access):
+</p>
+
+<pre>
+cvs -z 9 -d :pserver:anoncvs@sourceware.org:/cvs/src login
+[password is "anoncvs"]
+cvs -z 9 -d :pserver:anoncvs@sourceware.org:/cvs/src co binutils
+mkdir binutils-objdir
+cd binutils-objdir
+../src/configure --enable-gold --prefix=/opt/gold
+make
+make install
+</pre>
+
+<p>
A number of prerequisites are required to build <code>gcc</code>, as
-described on the <code>gcc</code> web site. If those are all
-available, then a typical build and install sequence would look like
-this:
+described on the <a href="http://gcc.gnu.org/">gcc web site</a>. If
+those are all available, then a typical build and install sequence
+would look like this (only use the <code>--with-ld</code> option if
+you built and installed the gold linker as described above):
+</p>
<pre>
svn checkout svn://gcc.gnu.org/svn/gcc/branches/gccgo gccgo
mkdir objdir
cd objdir
-../gccgo/configure --enable-languages=c,c++,go
+../gccgo/configure --enable-languages=c,c++,go --with-ld=/opt/gold/bin/ld
make
make install
</pre>
-</p>
<h2 id="Using_gccgo">Using gccgo</h2>