summaryrefslogtreecommitdiff
path: root/hurd/building
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@schwinge.name>2010-10-19 11:57:21 +0200
committerThomas Schwinge <thomas@schwinge.name>2010-10-19 11:59:57 +0200
commit3c6af50a5777f78b16b71fbeb28445d4af40ef4a (patch)
tree19950613cd528cc825b5d923a80c55f5b6fd0154 /hurd/building
parentc66c60403a40b9dd0ea105e63b9a34a4ee56ba84 (diff)
Reorganize some toolchain pages.
Diffstat (limited to 'hurd/building')
-rw-r--r--hurd/building/cross-compiling.mdwn205
1 files changed, 4 insertions, 201 deletions
diff --git a/hurd/building/cross-compiling.mdwn b/hurd/building/cross-compiling.mdwn
index d5beade9..1ecfd0bd 100644
--- a/hurd/building/cross-compiling.mdwn
+++ b/hurd/building/cross-compiling.mdwn
@@ -1,208 +1,11 @@
-[[!meta copyright="Copyright © 2007, 2008, 2010 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
-is included in the section entitled
-[[GNU Free Documentation License|/fdl]]."]]"""]]
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
-# `cross-gnu`
-
-[[Thomas_Schwinge|tschwinge]] has written a shell script for building a
-complete cross-build environment for GNU/Hurd systems.
-
-Find it in the [[source repositories/incubator]], *cross-gnu* branch.
-
-
-## Using
-
-Read through it. Understand it. Only then use it by following the next steps.
-
-
-## Status
-
-/!\ Please note that these cross toolchains does not yet encompass all of the
-functionality that native toolchains provide. For example, there is only
-support for C and C++ so far, but not for other languages. A bunch of fixes /
-enhancements of [[glibc]] are missing. We're working towards minimizing these
-differences, as well as towards pushing all patches upstream.
-
-
-### Supported Versions of Source Packages
-
-The following ones are known to work. Others may work as well, but no
-guarantee is given. Always the preferred version is listed first.
-
- * `src/binutils`: [[GNU_Binutils|binutils]]
-
- * CVS `binutils-2_20-branch`
-
- $ mkdir binutils-2_20-branch
- $ cd binutils-2_20-branch/
- $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src ↩
- co -r binutils-2_20-branch binutils
-
- The sources are rooted in `binutils-2_20-branch/src/`. Also use the above
- commands for updating, instead of the usual `cvs update`.
-
- * Release of the 2.20 series from <ftp://ftp.gnu.org/gnu/binutils/>
- should also be fine.
-
- * `src/gcc`: [[GNU_Compiler_Collection|gcc]]
-
- * SVN `gcc-4_5-branch`
-
- $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch
-
- Patches:
-
- * <http://gcc.gnu.org/ml/gcc-patches/2010-04/msg00602.html>
-
- Prepare:
-
- $ ( cd gcc-4_5-branch/ && contrib/gcc_update --touch )
-
- * SVN `gcc-4_4-branch`
-
- $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_4-branch
-
- Patches:
-
- * <http://gcc.gnu.org/ml/gcc-patches/2010-04/msg00602.html>
-
- Prepare:
-
- $ ( cd gcc-4_4-branch/ && contrib/gcc_update --touch )
-
- * Releases of the 4.5 and 4.4 series from <ftp://ftp.gnu.org/gnu/gcc/>
- should also be fine, but need the same set of patches as the
- `gcc-4_5-branch` needs.
-
- * `src/gnumach`: [[GNU_Mach|microkernel/mach/gnumach]]
-
- * Git `master` branch
-
- $ git clone ↩
- git://git.sv.gnu.org/hurd/gnumach.git gnumach
-
- Prepare:
-
- $ ( cd gnumach/ && autoreconf -vi )
-
- * `src/mig`: [[microkernel/mach/mig/GNU_MIG]]
-
- * Git `master` branch
-
- $ git clone ↩
- git://git.sv.gnu.org/hurd/mig.git mig
-
- Prepare:
-
- $ ( cd mig/ && autoreconf -vi )
-
- * `src/hurd`: [[GNU_Hurd|hurd]]
-
- * Git `master` branch
-
- $ git clone ↩
- git://git.sv.gnu.org/hurd/hurd.git hurd
-
- * `src/libpthread`: [[libpthread]]
-
- * Git `tschwinge/Peter_Herbolzheimer` branch
-
- $ git clone --no-checkout ↩
- git://git.sv.gnu.org/hurd/libpthread.git libpthread
- $ cd libpthread/
- $ git checkout origin/tschwinge/Peter_Herbolzheimer
-
- * `src/glibc`: [[GNU_C_Library|glibc]]
-
- * Git `tschwinge/Roger_Whittaker` branch
-
- $ git clone --no-checkout ↩
- git://git.sv.gnu.org/hurd/glibc.git glibc
- $ cd glibc/
- $ git checkout origin/tschwinge/Roger_Whittaker
-
-<!--
-
- * `src/gdb`: [[GNU_Debugger|gdb]]
-
- This is optional and will only be compiled if present.
-
- * CVS `gdb_6_6-branch`
-
- $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src ↩
- co -r gdb_6_6-branch gdb
- $ mv src gdb_6_6-branch
-
- Also needs some patch because of MIG changes, if I remember correctly.
-
- * Recent tarballs from <ftp://ftp.gnu.org/gnu/gdb/> should also work.
-
--->
-
-
-### Preparation
-
-Unpack the tarballs if you downloaded any.
-
-Create a directory where the cross build shall be rooted in and a `src`
-subdirectory in there. Then create symbolic links for every of the above
-packages: from `src/PACKAGE` to where you stored or unpacked it. If you don't
-intend to build several cross compilers or use the source trees otherwise, you
-can also directly store the source trees in `src/`. The source trees can be
-shared between multiple cross build trees since the packages' build systems are
-supposed not to modify the files in the source trees. Not all packages adhere
-to that, but they fail to do so only for pre-processed documentation, etc.
-
-Either make sure that `cross-gnu-env` and `cross-gnu` are found in `$PATH`
-(`~/bin/`, for example) or alternatively remember to use their full paths in
-the following.
-
-The system you're running the script on (the *build* system) needs to have a
-basic compiling environment installed, i.e., a C compiler with the basic
-libraries and `make`. You might also need `flex` and `bison`. For building
-recent version of GCC (4.3 onwards)
-you'll need to have development packages of GMP and MPFR installed.
-
-
-### Setting Up the Environment
-
-Do this every time you intend to use the cross compiler:
-
- $ ROOT=to/the/cross/build/root
- $ . cross-gnu-env
-
-This will set several environment variables, which are later used by (a) the
-`cross-gnu` script and (b) by you, the user of the cross compiler. `$TARGET`
-will be set by the script, `$PATH` will be adjusted, etc. See the
-`cross-gnu-env` file for all environment variables that are set, as well as
-their default values. `$ROOT` will be made an absolute path if it isn't
-already.
-
-Later, you'll be able to do things like `../configure --host="$TARGET"` and the
-cross compiler will be found automatically.
-
-
-### Creating the Cross Build Environment
-
-After setting up the environemt, just run `cross-gnu` and watch the messages
-flow by. In the end you should see a message: *[...]/cross-gnu: Everything
-should be in place now.*
-
-
-### Staying Up-To-Date
-
-You can re-run `cross-gnu` to rebuild the parts of the sources that have
-changed since the last run. This will save a lot of time compared to starting
-from scratch again. Also, it is especially useful if you aren't working with
-unpacked tarballs, but on CVS's / SVN's / Git's branches or want to quickly get
-a new toolchain
-with patches you applied to the source trees. However: do *not* use this
-technique when doing major changes to the source trees, like switching from GCC
-4.4 to GCC 4.5.
+[[!meta redir=/toolchain/cross-gnu]]