mirror of
https://github.com/golang/go
synced 2024-11-21 21:34:40 -07:00
Document how to build gccgo to use gold.
This provides full support for discontiguous stacks. R=r CC=golang-dev https://golang.org/cl/183088
This commit is contained in:
parent
c7bd61a216
commit
1d5e1f578c
@ -43,21 +43,47 @@ using the <code>configure</code> option <code>--with-arch=i586</code>
|
|||||||
run).
|
run).
|
||||||
</p>
|
</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>
|
<p>
|
||||||
A number of prerequisites are required to build <code>gcc</code>, as
|
A number of prerequisites are required to build <code>gcc</code>, as
|
||||||
described on the <code>gcc</code> web site. If those are all
|
described on the <a href="http://gcc.gnu.org/">gcc web site</a>. If
|
||||||
available, then a typical build and install sequence would look like
|
those are all available, then a typical build and install sequence
|
||||||
this:
|
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>
|
<pre>
|
||||||
svn checkout svn://gcc.gnu.org/svn/gcc/branches/gccgo gccgo
|
svn checkout svn://gcc.gnu.org/svn/gcc/branches/gccgo gccgo
|
||||||
mkdir objdir
|
mkdir objdir
|
||||||
cd 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
|
||||||
make install
|
make install
|
||||||
</pre>
|
</pre>
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2 id="Using_gccgo">Using gccgo</h2>
|
<h2 id="Using_gccgo">Using gccgo</h2>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user