summary refs log tree commit diff
path: root/doc/guix.texi
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2017-06-16 09:55:00 +0200
committerRicardo Wurmus <rekado@elephly.net>2017-06-16 18:23:31 +0200
commit2f0c4b82843ab41793b675267ede13c169399f86 (patch)
tree9af6fac9a8f7ef19b5a2a96a5945f13db51993b3 /doc/guix.texi
parent8231c539382bfb734afb186130a0f9e2dde0822c (diff)
downloadguix-2f0c4b82843ab41793b675267ede13c169399f86.tar.gz
doc: Explain how to use the GCC toolchain.
* doc/guix.texi (Application Setup): Add subsection "The GCC toolchain".
Diffstat (limited to 'doc/guix.texi')
-rw-r--r--doc/guix.texi24
1 files changed, 24 insertions, 0 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 97fa1b7864..cb5821e698 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -1441,6 +1441,30 @@ some reason, you want to avoid auto-loading Emacs packages installed
 with Guix, you can do so by running Emacs with @code{--no-site-file}
 option (@pxref{Init File,,, emacs, The GNU Emacs Manual}).
 
+@subsection The GCC toolchain
+
+@cindex GCC
+@cindex ld-wrapper
+
+Guix offers individual compiler packages such as @code{gcc} but if you
+are in need of a complete toolchain for compiling and linking source
+code what you really want is the @code{gcc-toolchain} package.  This
+package provides a complete GCC toolchain for C/C++ development,
+including GCC itself, the GNU C Library (headers and binaries, plus
+debugging symbols in the @code{debug} output), Binutils, and a linker
+wrapper.
+
+@cindex attempt to use impure library, error message
+
+The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches
+passed to the linker, add corresponding @code{-rpath} arguments, and
+invoke the actual linker with this new set of arguments.  By default,
+the linker wrapper refuses to link to libraries outside the store to
+ensure ``purity''.  This can be annoying when using the toolchain to
+link with local libraries.  To allow references to libraries outside the
+store you need to define the environment variable
+@code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES}.
+
 @c TODO What else?
 
 @c *********************************************************************