doc: Add a "Boostrapping" section. * doc/guix.texi (Package Modules): New node, with material formerly under "GNU Distribution". (Bootstrapping): New node. * Makefile.am (EXTRA_DIST): Add doc/images/bootstrap-graph.dot and doc/images/bootstrap-graph.eps. (infoimagedir, dist_infoimage_DATA, DOT_OPTIONS): New variable. (.dot.png, .dot.eps, doc/guix.pdf, doc/guix.info, doc/guix.ps): New targets. * doc/images/bootstrap-graph.dot: New file.
gnu: gcc: Add Texinfo to the native inputs. * gnu/packages/gcc.scm (gcc-4.7): Add `native-inputs' field. (gcc-4.8): Remove outdated comment. * gnu/packages/base.scm (gcc-boot0): Add `native-inputs' field.
gnu: make-bootstrap: guile-static-stripped has no "debug" output. * gnu/packages/make-bootstrap.scm (%guile-static-stripped): Add `outputs' field.
build-system/gnu: Remove the "debug" output when `strip-binaries?' is #f. * guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Delete "debug" from OUTPUTS when STRIP-BINARIES? is false. * gnu/packages/cross-base.scm (cross-libc): Leave `outputs' unchanged. This reverts commit a4627d4.
gnu: cross-libc: Remove the "debug" output. * gnu/packages/cross-base.scm (cross-libc): Remove "debug" from the `outputs' field.
gnu: Add a "debug" output for some packages. * gnu/packages/base.scm (coreutils, gnu-make, glibc): Add a "debug" output. * gnu/packages/bdw-gc.scm (libgc): Likewise. * gnu/packages/guile.scm (guile-2.0): Likewise. * gnu/packages/libffi.scm (libffi): Likewise. * gnu/packages/multiprecision.scm (gmp, mpfr, mpc): Likewise.
build-system/gnu: Write debug files to the "debug" sub-derivation, if any. * guix/build/gnu-build-system.scm (strip): Add `objcopy-command' keyword parameter. [debug-output, debug-file-extension]: New variables. [debug-file, make-debug-file, add-debug-link]: New procedures. [strip-dir]: Use them.
utils: Re-export `alist-cons' and `alist-delete'. * guix/build/utils.scm: Re-export `alist-cons' and `alist-delete'.
gnu: gcc: Use `gcc-configure-flags-for-triplet' when cross-compiling GCC. * gnu/packages/cross-base.scm (gcc-configure-flags-for-triplet): Move to... * gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): ... here. New procedure. (gcc-4.7): Use it when (%current-target-system) is true.
build: Add "mips64el-linux-gnuabi64" as a cross build target. * build-aux/hydra/gnu-system.scm (%packages-to-cross-build): Add %bootstrap-tarballs. (%cross-targets): Add "mips64el-linux-gnuabi64".
gnu: cross-base: Add support for `mips64el-linux-gnu-gnuabi64' (N64 ABI). * gnu/packages/cross-base.scm (gcc-configure-flags-for-triplet): New procedure. (cross-gcc): Use it. (xgcc-mips64el): Use *-gnuabi64 instead of the N32 ABI.
gnu: make-bootstrap: Fix cross compilation of binutils-static. * gnu/packages/make-bootstrap.scm (%binutils-static): Inherit configure flags from BINUTILS.
gnu: make-bootstrap: Have %gcc-static actually static when cross building. * gnu/packages/make-bootstrap.scm (%gcc-static): Pass `-static' through `LDFLAGS' when cross-compiling.
gnu: gcc: Allow cross-compilation of GCC itself. * gnu/packages/gcc.scm (gcc-4.7): Define `CC_FOR_TARGET', `AR_FOR_TARGET', etc. when cross-compiling.
gnu: cross-base: Make `glibc-dynamic-linker' do the right thing. * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Determine SYSTEM based on (%current-target-system) when it's true. * gnu/packages/cross-base.scm (cross-gcc): Directly call (package-arguments gcc-4.7) from the body of `arguments'.
gnu: cross-base: Build Binutils with `--with-sysroot=/'. * gnu/packages/cross-base.scm (cross-binutils): Use `--with-sysroot=/'.
build: Build the bootstrap tarballs on Hydra. * build-aux/hydra/gnu-system.scm (%packages-to-cross-build): Uncomment the bootstrap tarball packages.
gnu: make-bootstrap: Allow cross-compilation of the bootstrap tarballs. * gnu/packages/make-bootstrap.scm (package-with-relocatable-glibc): Turn `inputs' into a thunk. Add `native-inputs', and pass it to `package-with-explicit-inputs'. (%static-inputs): Add %BASH-STATIC as an input to gawk when cross building. (%glibc-stripped): When cross compiling, use (glibc-for-bootstrap (cross-libc)) as the basis. (%gcc-static): Base on GCC-4.7, not GCC-FINAL. (tarball-package): TAR and XZ are native inputs. Choose the tarball file name based on (%current-target-system) too.
build-system/gnu: `package-with-explicit-inputs' skips non-GBS packages. * guix/build-system/gnu.scm (package-with-explicit-inputs)[rewritten-input]: Leave P unchanged if its build system is not GNU-BUILD-SYSTEM.
gnu: cross-base: Make the cross tools native inputs. * gnu/packages/cross-base.scm (cross-gcc): Change `inputs' to `native-inputs', and set `inputs' to the empty list. (cross-libc): Likewise.