From cf414349e257de8e837f11bff328123dc2aab9f8 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 20 Sep 2007 17:45:11 +0200 Subject: Re-integrate `Hurd/BuildingHurd' as `hurd/building'. --- hurd/building.mdwn | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 hurd/building.mdwn (limited to 'hurd/building.mdwn') diff --git a/hurd/building.mdwn b/hurd/building.mdwn new file mode 100644 index 00000000..03c0f8de --- /dev/null +++ b/hurd/building.mdwn @@ -0,0 +1,92 @@ +# Building the Hurd from Source + +If you want to build the Hurd libraries and servers (translators) yourself instead of just using pre-built binaries, follow these instructions. + +One note before we begin: the likelihood that the compiled result will actually do what you expect it to do is the highest if you try building from the Debian source packages. This is especially true if you want to use your compilation within a Debian system. + +## Getting the Source Code + +You can chose between getting the [sources from the developers's RCS](http://www.gnu.org/software/hurd/download.html#cvs): + + $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co hurd + +... or (if you are working on a Debian system) the ones that are used for the [current Debian hurd package](http://packages.debian.net/source/unstable/hurd): + + $ apt-get source hurd + +Please see the Debian [[running/debian/FAQ]] before using _apt-get source_. + +The unpacked source tree is around 20 MiB, and the build tree (configured with _--disable-profile_) is around 100 MiB. + +## Preparing for the Build + +### ... on Debian systems + +Building the Hurd requires the _build-essential_ and _fakeroot_ packages, their dependencies and additional packages that are specified by the source hurd package: + + # apt-get install build-essential fakeroot + # apt-get build-dep hurd + +### ... on non-Debian systems + +[TODO] + +## Building + +### Debian _.deb_ Files + +Change into the directory with the downloaded / unpacked Hurd sources, e.g. + + $ cd hurd-[TODO] + +If you want to work on the sources before building them, it's advisable to first apply the patches the Debian hurd package additionally contains: + + $ debian/rules apply-patches + +Then edit and change whatever files you want and finally start the build process with + + $ dpkg-buildpackage -us -uc -nc -b -rfakeroot + +The _.deb_ packages will then drop out at the _../_ directory. + +### Building, but not the Debian Way + +The Hurd has to be built in a separate directory: + + $ mkdir hurd-build + $ cd hurd-build + + $ [...]/hurd-[TODO]/configure --disable-profile + $ make + $ make install + +Notice that _make install_ will install the Hurd in _/_, not in _/usr/local/_ or _/local/_, so your current Hurd servers will be replaced. [TODO: how to install somewhere else.] + +By default profiling versions of all the libraries and code are generated but this is useless in most of the cases, so we disable them by specifying _--disable-profile_ on \_configure\_'s command line. + +If you just want to build a specific server or library, you can pass its name to _make_: + + $ make ext2fs + $ make libtrivfs + +This will automatically build all libraries that are required to build the requested server or library. + +### Cross Compiling + +See and for now. + +## RPC Ids + +[TODO: update / integrate somewhere.] + +If you want to trace the RPC calls made by some process by using `rpctrace` command, you will also want some more human-readable output of this command. This is achieved by generating `hurd.msgids` file that includes the mapping between the number of the RPC call and its name: + + $ cd build/hurd + $ make hurd.msgids + $ cp hurd.msgids ~ + +Now you can use this file in the following way: + + $ rpctrace -i ~/hurd.msgids ls + +-- [[Main/OgnyanKulev]] - 08 Apr 2003 -- cgit v1.2.3 From 636a3fe4855f018a82b6ed0d524481c8ac5564ea Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 30 Sep 2007 21:37:39 +0200 Subject: May be incomplete or out-dated. --- hurd/building.mdwn | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'hurd/building.mdwn') diff --git a/hurd/building.mdwn b/hurd/building.mdwn index 03c0f8de..5a2f4215 100644 --- a/hurd/building.mdwn +++ b/hurd/building.mdwn @@ -1,3 +1,6 @@ +/!\ The following information may very well be incomplete and out-dated. + + # Building the Hurd from Source If you want to build the Hurd libraries and servers (translators) yourself instead of just using pre-built binaries, follow these instructions. @@ -88,5 +91,3 @@ If you want to trace the RPC calls made by some process by using `rpctrace` comm Now you can use this file in the following way: $ rpctrace -i ~/hurd.msgids ls - --- [[Main/OgnyanKulev]] - 08 Apr 2003 -- cgit v1.2.3 From 17741f136fd9e7003e556d21ee0cb7efe789fa52 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 30 Sep 2007 21:44:02 +0200 Subject: Add a pointer to the `cross-gnu' shell script. --- hurd/building.mdwn | 3 +++ hurd/building/cross-compiling.mdwn | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 hurd/building/cross-compiling.mdwn (limited to 'hurd/building.mdwn') diff --git a/hurd/building.mdwn b/hurd/building.mdwn index 5a2f4215..cb7cb52f 100644 --- a/hurd/building.mdwn +++ b/hurd/building.mdwn @@ -1,3 +1,6 @@ +* [[cross-compiling]] + + /!\ The following information may very well be incomplete and out-dated. diff --git a/hurd/building/cross-compiling.mdwn b/hurd/building/cross-compiling.mdwn new file mode 100644 index 00000000..ffd12ef0 --- /dev/null +++ b/hurd/building/cross-compiling.mdwn @@ -0,0 +1,19 @@ +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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.txt]]."]] + +[[Thomas_Schwinge|tschwinge]] has written a shell script for building a +complete cross-build environment for GNU/Hurd systems. + +For now, find the shell scripts at + and +. + +Read through it. Understand it. Then use it. + +Feel free to ask questions or report problems on this page's [[discussion]] +sub-page. -- cgit v1.2.3 From a40e606e9f14783d61feda0d80d74c96585e86f4 Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Tue, 13 Nov 2007 11:31:44 +0000 Subject: web commit by vincentvikram: Updated cross-compilation link --- hurd/building.mdwn | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'hurd/building.mdwn') diff --git a/hurd/building.mdwn b/hurd/building.mdwn index cb7cb52f..b91a65fe 100644 --- a/hurd/building.mdwn +++ b/hurd/building.mdwn @@ -1,6 +1,3 @@ -* [[cross-compiling]] - - /!\ The following information may very well be incomplete and out-dated. @@ -79,6 +76,7 @@ This will automatically build all libraries that are required to build the reque ### Cross Compiling +* [[cross-compiling]] See and for now. ## RPC Ids -- cgit v1.2.3 From a70676a3cbb4a442253a1ecdc2d0d23ee25450ad Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 13 Nov 2007 18:05:59 +0100 Subject: Use proper ikiwiki syntax. Remove the link to the cross-gnu scripts, as it's being linked to the [[cross-compiling]] page now --- hurd/building.mdwn | 74 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 27 deletions(-) (limited to 'hurd/building.mdwn') diff --git a/hurd/building.mdwn b/hurd/building.mdwn index b91a65fe..5b88ac7c 100644 --- a/hurd/building.mdwn +++ b/hurd/building.mdwn @@ -1,58 +1,69 @@ /!\ The following information may very well be incomplete and out-dated. -# Building the Hurd from Source +# Building the Hurd from Source -If you want to build the Hurd libraries and servers (translators) yourself instead of just using pre-built binaries, follow these instructions. +If you want to build the Hurd libraries and servers (translators) yourself +instead of just using pre-built binaries, follow these instructions. -One note before we begin: the likelihood that the compiled result will actually do what you expect it to do is the highest if you try building from the Debian source packages. This is especially true if you want to use your compilation within a Debian system. +One note before we begin: the likelihood that the compiled result will actually +do what you expect it to do is the highest if you try building from the Debian +source packages. This is especially true if you want to use your compilation +within a Debian system. -## Getting the Source Code +## Getting the Source Code -You can chose between getting the [sources from the developers's RCS](http://www.gnu.org/software/hurd/download.html#cvs): +You can chose between getting the [sources from the developers's +RCS](http://www.gnu.org/software/hurd/download.html#cvs): $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co hurd -... or (if you are working on a Debian system) the ones that are used for the [current Debian hurd package](http://packages.debian.net/source/unstable/hurd): +... or (if you are working on a Debian system) the ones that are used for the +[current Debian hurd package](http://packages.debian.net/source/unstable/hurd): $ apt-get source hurd -Please see the Debian [[running/debian/FAQ]] before using _apt-get source_. +Please see the Debian [[running/debian/FAQ]] before using `apt-get source`. -The unpacked source tree is around 20 MiB, and the build tree (configured with _--disable-profile_) is around 100 MiB. +The unpacked source tree is around 20 MiB, and the build tree (configured with +`--disable-profile`) is around 100 MiB. -## Preparing for the Build +## Preparing for the Build -### ... on Debian systems +### ... on Debian systems -Building the Hurd requires the _build-essential_ and _fakeroot_ packages, their dependencies and additional packages that are specified by the source hurd package: +Building the Hurd requires the *build-essential* and *fakeroot* packages, their +dependencies and additional packages that are specified by the source hurd +package: # apt-get install build-essential fakeroot # apt-get build-dep hurd -### ... on non-Debian systems +### ... on non-Debian systems [TODO] -## Building +## Building -### Debian _.deb_ Files +### Debian `.deb` Files Change into the directory with the downloaded / unpacked Hurd sources, e.g. $ cd hurd-[TODO] -If you want to work on the sources before building them, it's advisable to first apply the patches the Debian hurd package additionally contains: +If you want to work on the sources before building them, it's advisable to +first apply the patches the Debian hurd package additionally contains: $ debian/rules apply-patches -Then edit and change whatever files you want and finally start the build process with +Then edit and change whatever files you want and finally start the build +process with $ dpkg-buildpackage -us -uc -nc -b -rfakeroot -The _.deb_ packages will then drop out at the _../_ directory. +The `.deb` packages will then drop out at the `../` directory. -### Building, but not the Debian Way +### Building, but not the Debian Way The Hurd has to be built in a separate directory: @@ -63,27 +74,36 @@ The Hurd has to be built in a separate directory: $ make $ make install -Notice that _make install_ will install the Hurd in _/_, not in _/usr/local/_ or _/local/_, so your current Hurd servers will be replaced. [TODO: how to install somewhere else.] +Notice that `make install` will install the Hurd in `/`, not in `/usr/local/` +or `/local/`, so your current Hurd servers will be replaced. [TODO: how to +install somewhere else.] -By default profiling versions of all the libraries and code are generated but this is useless in most of the cases, so we disable them by specifying _--disable-profile_ on \_configure\_'s command line. +By default profiling versions of all the libraries and code are generated but +this is useless in most of the cases, so we disable them by specifying +`--disable-profile` on `configure`'s command line. -If you just want to build a specific server or library, you can pass its name to _make_: +If you just want to build a specific server or library, you can pass its name +to `make`: $ make ext2fs $ make libtrivfs -This will automatically build all libraries that are required to build the requested server or library. +This will automatically build all libraries that are required to build the +requested server or library. -### Cross Compiling +### Cross Compiling -* [[cross-compiling]] -See and for now. +Read about [[cross-compiling]]. -## RPC Ids + +## RPC IDs [TODO: update / integrate somewhere.] -If you want to trace the RPC calls made by some process by using `rpctrace` command, you will also want some more human-readable output of this command. This is achieved by generating `hurd.msgids` file that includes the mapping between the number of the RPC call and its name: +If you want to trace the RPC calls made by some process by using `rpctrace` +command, you will also want some more human-readable output of this +command. This is achieved by generating `hurd.msgids` file that includes the +mapping between the number of the RPC call and its name: $ cd build/hurd $ make hurd.msgids -- cgit v1.2.3 From 664fda183dd77c991b0a134f56a9d6f1dec685b4 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 13 Nov 2007 18:28:30 +0100 Subject: Move to a suitable place. --- howtos.mdwn | 2 +- hurd/building.mdwn | 2 ++ hurd/building/example.mdwn | 58 ++++++++++++++++++++++++++++++++++++++++++++++ hurdcompilation.mdwn | 58 ---------------------------------------------- hurdlibraryhowto.mdwn | 2 +- 5 files changed, 62 insertions(+), 60 deletions(-) create mode 100644 hurd/building/example.mdwn delete mode 100644 hurdcompilation.mdwn (limited to 'hurd/building.mdwn') diff --git a/howtos.mdwn b/howtos.mdwn index 85e53bc8..a9a34818 100644 --- a/howtos.mdwn +++ b/howtos.mdwn @@ -21,4 +21,4 @@ is included in the section entitled ## Compilation * [[GNUMachCompilation]] Compiling GNU Mach from sources - * [[HurdCompilation]] Compilation of Hurd sources + * An [[hurd/building/example]] about the compilation of Hurd sources diff --git a/hurd/building.mdwn b/hurd/building.mdwn index 5b88ac7c..7a24f70a 100644 --- a/hurd/building.mdwn +++ b/hurd/building.mdwn @@ -1,3 +1,5 @@ +Additional to the following text, a further [[example]] has be posted. + /!\ The following information may very well be incomplete and out-dated. diff --git a/hurd/building/example.mdwn b/hurd/building/example.mdwn new file mode 100644 index 00000000..0adaf1f8 --- /dev/null +++ b/hurd/building/example.mdwn @@ -0,0 +1,58 @@ +[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] +[[meta license="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]]."]] + +I checked out the source code on my Ubuntu GNU/Linux system connected to the +Internet using: + + cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co hurd + +I mounted the hurd directory on Ubuntu from my GNU Hurd system connected to the +LAN through NFS: + + settrans -ac /mnt /hurd/nfs ubuntu:/home/shaks/code + +Copy the hurd directory, locally. + +For compilation, you require build-essential, libc0.3-dev, hurd-dev. I used +Debian GNU Hurd K10 CDs for installation and they are available in the first +CD. + + apt-get update + apt-get install build-essential libc0.3-dev hurd-dev + +Enter into the hurd directory and start building it: + + cd hurd + mkdir build + cd build + ../configure + make + +There is a "libiohelp needed by" error. So, do a manual compilation for +libiohelp. + + cd .. + make libiohelp + cd build + make + +There is a "libiostore needed by" error. So, do a manual compilation for +libiostore. + + cd .. + make libiostore + cd build + make + +There is a "libiohelp.so: No such file or directory" error. + +Copy libiohelp/libiohelp.so file to build/libiohelp/ and re-run make, + + make + +The executables are created in the subdirectories in build/ directory. diff --git a/hurdcompilation.mdwn b/hurdcompilation.mdwn deleted file mode 100644 index 0adaf1f8..00000000 --- a/hurdcompilation.mdwn +++ /dev/null @@ -1,58 +0,0 @@ -[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]] -[[meta license="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]]."]] - -I checked out the source code on my Ubuntu GNU/Linux system connected to the -Internet using: - - cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co hurd - -I mounted the hurd directory on Ubuntu from my GNU Hurd system connected to the -LAN through NFS: - - settrans -ac /mnt /hurd/nfs ubuntu:/home/shaks/code - -Copy the hurd directory, locally. - -For compilation, you require build-essential, libc0.3-dev, hurd-dev. I used -Debian GNU Hurd K10 CDs for installation and they are available in the first -CD. - - apt-get update - apt-get install build-essential libc0.3-dev hurd-dev - -Enter into the hurd directory and start building it: - - cd hurd - mkdir build - cd build - ../configure - make - -There is a "libiohelp needed by" error. So, do a manual compilation for -libiohelp. - - cd .. - make libiohelp - cd build - make - -There is a "libiostore needed by" error. So, do a manual compilation for -libiostore. - - cd .. - make libiostore - cd build - make - -There is a "libiohelp.so: No such file or directory" error. - -Copy libiohelp/libiohelp.so file to build/libiohelp/ and re-run make, - - make - -The executables are created in the subdirectories in build/ directory. diff --git a/hurdlibraryhowto.mdwn b/hurdlibraryhowto.mdwn index 47525c50..ddc0d7a9 100644 --- a/hurdlibraryhowto.mdwn +++ b/hurdlibraryhowto.mdwn @@ -11,7 +11,7 @@ is included in the section entitled Build the Hurd sources: ------------------------ -Refer to: [[HurdCompilation]] +Refer to this [[hurd/building/example]]. Create the library files: ---------------------- -- cgit v1.2.3 From 155b3fde577d1f6e06ee1df2204ebcaea7c81935 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 6 Nov 2008 09:44:21 +0100 Subject: Integrate two more HTML pages. --- download.html | 140 ----------------------------------------------------- hurd.mdwn | 19 +++++++- hurd/building.mdwn | 2 +- install.html | 126 ----------------------------------------------- 4 files changed, 18 insertions(+), 269 deletions(-) delete mode 100644 download.html delete mode 100644 install.html (limited to 'hurd/building.mdwn') diff --git a/download.html b/download.html deleted file mode 100644 index d2d718f5..00000000 --- a/download.html +++ /dev/null @@ -1,140 +0,0 @@ - - - -The GNU Hurd - GNU Project - Free Software Foundation (FSF) - - - - - - - - - - - - -
- [image of the Hurd logo] -[ - - - English -| Esperanto -| Spanish -] -
-What's New

-ChangeLogs

-Documentation
-

-GNU Hurd

-Installation
-Getting Help
-Source Code
-Development
-History

-GNU Mach

-Installation
-Source Code

-GNU MIG

-Source Code

-Related Projects -

-
-

Table of Contents

- -
- -

CVS repository

-

-The Hurd source code is managed in the version control system CVS. You can check out the CVS -repository through anonymous CVS over SSH with the following -instruction set. When prompted for a password for anoncvs, -simply press the Enter key. - -

-Source tree: - 
-cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co hurd - -

Updates from within the module's directory do not need the -d parameter. - -

For the full details, read the savannah page. - -

Browsing the code

-

-You can also browse the CVS -repository of the Hurd with your web browser. The web pages are -generated dynamically at the time you request them and are always up -to date. -

-There is also a cross referenced -database of the Hurd, GNU Mach, MIG, and the GNU C library sources -online for you to browse. It provides better searching and browsing -facilities than the online CVS repository, but it is not always up to -date and does not contain history information. - -

-Some of these links are at other web sites not maintained by the -FSF. The FSF is not responsible for the content of these other web sites. -

- -
- -[ - - - English -| Esperanto -| Spanish -] - -
- -

-Return to GNU's home page. -

- -Please send FSF & GNU inquiries & questions to - -gnu@gnu.org. -There are also other ways to -contact the FSF. -

- -Please send comments on these web pages to - -web-hurd@gnu.org, -send other questions to -gnu@gnu.org. -

-Copyright (C) 2001, 2002 Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111, USA -

-Verbatim copying and distribution of this entire article is -permitted in any medium, provided this notice is preserved. -

-Updated: - -$Date$ $Author$ - -


- - diff --git a/hurd.mdwn b/hurd.mdwn index 178817ca..61e83d21 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -1,5 +1,5 @@ -[[meta copyright="Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free -Software Foundation, Inc."]] +[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +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 @@ -9,6 +9,21 @@ 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]]."]]"""]] +The GNU Hurd is under active development. Because of that, there is no +*stable* version. We distribute the Hurd sources only through CVS at present. + +Although it is possible to bootstrap the GNU/Hurd system from the sources by +cross-compiling and installing the system software and the basic applications, +this is a difficult process. It is not recommended that you do this. Instead, +you should get a binary distribution of the GNU/Hurd, which comes with all the +GNU software precompiled and an installation routine which is easy to use. + +The Debian project has commited to provide such a binary distribution. +[[Debian_GNU/Hurd|running/debian]] is currently under development and available +in the *unstable* branch of the Debian archive. + +--- + [[toc ]] # Introduction diff --git a/hurd/building.mdwn b/hurd/building.mdwn index 7a24f70a..01586c84 100644 --- a/hurd/building.mdwn +++ b/hurd/building.mdwn @@ -16,7 +16,7 @@ within a Debian system. ## Getting the Source Code You can chose between getting the [sources from the developers's -RCS](http://www.gnu.org/software/hurd/download.html#cvs): +RCS](http://savannah.gnu.org/cvs/?group=hurd): $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co hurd diff --git a/install.html b/install.html deleted file mode 100644 index b1517dae..00000000 --- a/install.html +++ /dev/null @@ -1,126 +0,0 @@ - - - -The GNU Hurd - GNU Project - Free Software Foundation (FSF) - - - - - - - - - - - - -
- [image of the Hurd logo] -[ - - - English -| Esperanto -| Spanish -] -
-What's New

-ChangeLogs

-Documentation
-

-GNU Hurd

-Installation
-Getting Help
-Source Code
-Development
-History

-GNU Mach

-Installation
-Source Code

-GNU MIG

-Source Code

-Related Projects -

-
-

Table of Contents

- -
- -

Latest version

-

-The GNU Hurd is under active development. Because of that, there is -no `stable' version. We distribute the Hurd sources only through CVS -at present. -

-Although it is possible to bootstrap the GNU/Hurd system from the sources -by cross-compiling and installing the system software and the basic -applications, this is a difficult process. It is not recommended that -you do this. Instead, you should get a binary distribution of the -GNU/Hurd, which comes with all the GNU software precompiled and an -installation routine which is easy to use. -

-The Debian project has commited to provide such a binary distribution. -Debian GNU/Hurd is -currently under development and available in the sid/unstable branch -of the Debian archive. Please see -the Debian GNU/Hurd -projects web page for installation instructions. - -

-Some of these links are at other web sites not maintained by the -FSF. The FSF is not responsible for the content of these other web sites. -

- -
- -[ - - - English -| Esperanto -| Spanish -] - -
- -

-Return to GNU's home page. -

- -Please send FSF & GNU inquiries & questions to - -gnu@gnu.org. -There are also other ways to -contact the FSF. -

- -Please send comments on these web pages to - -web-hurd@gnu.org, -send other questions to -gnu@gnu.org. -

-Copyright (C) 2001, 2002 Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111, USA -

-Verbatim copying and distribution of this entire article is -permitted in any medium, provided this notice is preserved. -

-Updated: - -$Date$ $Author$ - -


- - -- cgit v1.2.3 From 3c6af50a5777f78b16b71fbeb28445d4af40ef4a Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 19 Oct 2010 11:57:21 +0200 Subject: Reorganize some toolchain pages. --- binutils.mdwn | 22 +++- gcc.mdwn | 20 +++- glibc.mdwn | 27 ++++- hurd.mdwn | 4 +- hurd/binutils.mdwn | 11 +- hurd/building.mdwn | 10 +- hurd/building/cross-compiling.mdwn | 205 +----------------------------------- hurd/debugging/glibc.mdwn | 11 +- hurd/gcc.mdwn | 12 +-- hurd/toolchain.mdwn | 15 +-- libpthread.mdwn | 17 ++- news/2010-04-30.mdwn | 3 +- open_issues/ifunc.mdwn | 7 +- open_issues/nightly_builds.mdwn | 4 +- tag.mdwn | 2 +- toolchain.mdwn | 27 +++++ toolchain/cross-gnu.mdwn | 206 +++++++++++++++++++++++++++++++++++++ 17 files changed, 348 insertions(+), 255 deletions(-) create mode 100644 toolchain.mdwn create mode 100644 toolchain/cross-gnu.mdwn (limited to 'hurd/building.mdwn') diff --git a/binutils.mdwn b/binutils.mdwn index 3ce28bb1..00926a44 100644 --- a/binutils.mdwn +++ b/binutils.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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 @@ -8,4 +9,21 @@ 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]]."]]"""]] -The [GNU Binutils](http://www.gnu.org/software/binutils/). +[[!meta title="GNU Binutils"]] + + +# + + +# Specifics + +Actually *non-*specifics: as these tools primarily deal with low-level parts of +the target architecture and the object file format (ELF ABI), which are +essentially (at least meant to be) the same, there shouldn't be many +differences comparing the binutils between the GNU/Hurd and GNU/Linux ports, +for example. + + +# Open Issues + +[[!inline pages=tag/open_issue_binutils raw=yes feeds=no]] diff --git a/gcc.mdwn b/gcc.mdwn index 81a2a357..2192ab54 100644 --- a/gcc.mdwn +++ b/gcc.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -9,6 +9,22 @@ 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]]."]]"""]] -The [GNU Compiler Collection](http://gcc.gnu.org/). +[[!meta title="GNU Compiler Collection"]] + + +# http://gcc.gnu.org/ * [[Open Issues|tag/open_issue_gcc]] + + +# Specifics + +Actually mostly *non-*specifics: apart from the target-specific configuration +machinery, there shouldn't be any major differences within GCC between the +GNU/Hurd and GNU/Linux ports, for example. Especially all the compiler magic +is all the same. + + +# Open Issues + +[[!inline pages=tag/open_issue_gcc raw=yes feeds=no]] diff --git a/glibc.mdwn b/glibc.mdwn index c7e5eeb7..cefbb19c 100644 --- a/glibc.mdwn +++ b/glibc.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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 @@ -8,4 +9,26 @@ 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]]."]]"""]] -The [GNU C Library](http://www.gnu.org/software/libc/). +[[!meta title="GNU C Library"]] + + +# + + +## Sources + +For concenience, we maintain our own [[source +repository|source_repositories/glibc]]. + + +# Specifics + +Porting glibc to a specific architecture is non-trivial. + + +## [[Hurd-specific Port|hurd/glibc]] + + +# Open Issues + +[[!inline pages=tag/open_issue_glibc raw=yes feeds=no]] diff --git a/hurd.mdwn b/hurd.mdwn index 24610f97..18748229 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -75,15 +75,13 @@ in the *unstable* branch of the Debian archive. * [[Contributing]] -* [[Building]] - * [[building/Cross-Compiling]] - * [[Open Issues|tag/open_issue_hurd]] # Developer References * [[Rules]] * [[Trackers]] +* [[Building]] * [[Toolchain]] * [[glibc]] * RPC [[Interface]]s diff --git a/hurd/binutils.mdwn b/hurd/binutils.mdwn index 76b0ae60..f9266448 100644 --- a/hurd/binutils.mdwn +++ b/hurd/binutils.mdwn @@ -1,14 +1,11 @@ -[[!meta copyright="Copyright © 2007, 2008 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]]."]]"""]] -[[General_information|/binutils]] about the binutils. - -There shouldn't be any differences within the binutils between, for example, -the GNU/Hurd and GNU/Linux ports. +[[!meta redir=/binutils]] diff --git a/hurd/building.mdwn b/hurd/building.mdwn index 01586c84..1674b770 100644 --- a/hurd/building.mdwn +++ b/hurd/building.mdwn @@ -13,6 +13,12 @@ do what you expect it to do is the highest if you try building from the Debian source packages. This is especially true if you want to use your compilation within a Debian system. +Note that for building code to run on GNU/Hurd systems, you need a toolchain +for the GNU Hurd. You can either compile on a GNU/Hurd system, or need a +cross-compiler targeting GNU/Hurd. Our [[toolchain page|toolchain]] has the +details. + + ## Getting the Source Code You can chose between getting the [sources from the developers's @@ -93,10 +99,6 @@ to `make`: This will automatically build all libraries that are required to build the requested server or library. -### Cross Compiling - -Read about [[cross-compiling]]. - ## RPC IDs 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 - 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: - - * - - 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: - - * - - Prepare: - - $ ( cd gcc-4_4-branch/ && contrib/gcc_update --touch ) - - * Releases of the 4.5 and 4.4 series from - 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 - - - - -### 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]] diff --git a/hurd/debugging/glibc.mdwn b/hurd/debugging/glibc.mdwn index 905dd0da..e9817132 100644 --- a/hurd/debugging/glibc.mdwn +++ b/hurd/debugging/glibc.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 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 @@ -15,7 +16,7 @@ glibc have been done. First step is having the build of glibc succeed. This is actually more difficult than one might expect as it involves (towards the end of the build -process -- unless you are [[building/cross-compiling]], of course -- that the +process -- unless you are cross-compiling, of course -- that the newly created libraries and loader actually work: they'll be used to run the `rpcgen` program. If that step doesn't succeed, it'll look similar to this: @@ -25,12 +26,10 @@ newly created libraries and loader actually work: they'll be used to run the --- -Unless [[building/cross-compiling]], the next thing you'll probably want to do +Unless cross-compiling, the next thing you'll probably want to do is running the test suite, or parts of it. -Here is a list of known failures: - -[TODO]. +There is a list of [[known failures|open_issues/glibc_testsuite]]. --- diff --git a/hurd/gcc.mdwn b/hurd/gcc.mdwn index 53b5e071..129aa8a9 100644 --- a/hurd/gcc.mdwn +++ b/hurd/gcc.mdwn @@ -1,15 +1,11 @@ -[[!meta copyright="Copyright © 2007, 2008 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]]."]]"""]] -[[General_information|/gcc]] about the GCC. - -Apart from the target-specific configuration machinery, there shouldn't be any -major differences within GCC between, for example, the GNU/Hurd and GNU/Linux -ports. Especially all the compiler magic is all the same. +[[!meta redir=/gcc]] diff --git a/hurd/toolchain.mdwn b/hurd/toolchain.mdwn index 8b852089..91d49b2c 100644 --- a/hurd/toolchain.mdwn +++ b/hurd/toolchain.mdwn @@ -1,18 +1,11 @@ -[[!meta copyright="Copyright © 2007, 2008 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]]."]]"""]] -* [[binutils]] -* [[GCC]] -* [[glibc]] - -Before beginning to work on the inner parts of the GNU/Hurd toolchain, it's -always profitable to also know how things are done on other systems. Compare, -for example, how things are done differently for GNU/Hurd than they are done -for GNU/Linux. +[[!meta redir=/toolchain]] diff --git a/libpthread.mdwn b/libpthread.mdwn index f6210706..b31876b3 100644 --- a/libpthread.mdwn +++ b/libpthread.mdwn @@ -10,10 +10,21 @@ License|/fdl]]."]]"""]] [[!meta title="POSIX Threading Library"]] -Used by / ported to the [[Hurd]] on [[GNU Mach|microkernel/mach/gnumach]], some -[[microkernel/L4]] variants, and [[microkernel/Viengoos]]. + +# Sources + + + + +# Specifics + +Porting libpthread to a specific architecture is non-trivial. + +Our libpthread is currently used by / ported to the [[Hurd]] on [[GNU +Mach|microkernel/mach/gnumach]], some [[microkernel/L4]] variants, and +[[microkernel/Viengoos]]. # Open Issues - * [[tag/open_issue_libpthread]] +[[!inline pages=tag/open_issue_libpthread raw=yes feeds=no]] diff --git a/news/2010-04-30.mdwn b/news/2010-04-30.mdwn index 131af4ea..254ceb99 100644 --- a/news/2010-04-30.mdwn +++ b/news/2010-04-30.mdwn @@ -51,7 +51,8 @@ else="[[!paste id=full_news]]"]] > package (and these are meant to eventually be submitted upstream). After a > long break, he as well > [updated](http://lists.gnu.org/archive/html/bug-hurd/2010-04/msg00062.html) -> his [[toolchain_cross-compilation_script|hurd/building/cross-compiling]] to +> his toolchain cross-compilation script [[`cross-gnu`|toolchain/cross-gnu]] +> to > the current source code packages, and added C++ support. > On to the Google Summer of Code 2010: we got three students working on the diff --git a/open_issues/ifunc.mdwn b/open_issues/ifunc.mdwn index f005a409..a3c30dc2 100644 --- a/open_issues/ifunc.mdwn +++ b/open_issues/ifunc.mdwn @@ -10,5 +10,8 @@ License|/fdl]]."]]"""]] [[!tag open_issue_binutils open_issue_gcc open_issue_glibc]] -Needs porting / support in binutils and glibc, and probably also some [target -configure magic for GCC support](http://nickclifton.livejournal.com/6612.html). +Needs porting / support in [[/binutils]] and [[/glibc]], and probably also some +target configure magic for [[/GCC]]. + + has a short summary about how to +use it from GCC. diff --git a/open_issues/nightly_builds.mdwn b/open_issues/nightly_builds.mdwn index fb85cee1..506697bb 100644 --- a/open_issues/nightly_builds.mdwn +++ b/open_issues/nightly_builds.mdwn @@ -8,12 +8,12 @@ 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]]."]]"""]] -We'd like to have nightly builds for the whole toolchain, and then do some +We'd like to have nightly builds for the whole [[toolchain]], and then do some automatic [[unit_testing]] on them. Resources: - * the [[hurd/building/cross-compiling]] script + * [[toolchain/cross-gnu]] * As reported in the [[news/2010-05-31]] news, there's Hydra doing nightly builds / Nix packages. diff --git a/tag.mdwn b/tag.mdwn index 590d5d3a..e96e88d5 100644 --- a/tag.mdwn +++ b/tag.mdwn @@ -26,7 +26,7 @@ Most of them should be self-explanatory. * *open_issue_porting* A list of open issues in porting software to run on GNU/Hurd systems. This - list also includes [[hurd/toolchain]]-level items, items that are either + list also includes [[toolchain]]-level items, items that are either already solved in [[Debian GNU/Hurd|hurd/running/debian]] systems (tagged *fixed_in_debian*) or being worked around, so if you're out for working on application-level porting issues, then perusing through the list of diff --git a/toolchain.mdwn b/toolchain.mdwn new file mode 100644 index 00000000..b08dba95 --- /dev/null +++ b/toolchain.mdwn @@ -0,0 +1,27 @@ +[[!meta copyright="Copyright © 2007, 2008, 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]]."]]"""]] + + * [[binutils]] + + * [[GCC]] + + * [[glibc]] + + * [[libpthread]] + + +Before beginning to work on the inner parts of the GNU/Hurd toolchain, it's +always profitable to also know how things are done on other systems. Compare, +for example, how things are done differently for GNU/Hurd than they are done +for GNU/Linux. + + + * [[cross-gnu]] diff --git a/toolchain/cross-gnu.mdwn b/toolchain/cross-gnu.mdwn new file mode 100644 index 00000000..62c55a04 --- /dev/null +++ b/toolchain/cross-gnu.mdwn @@ -0,0 +1,206 @@ +[[!meta copyright="Copyright © 2007, 2008, 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]]."]]"""]] + +[[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`|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 + should also be fine. + + * [[`src/gcc`|gcc]] + + * SVN `gcc-4_5-branch` + + $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch + + Patches: + + * + + 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: + + * + + Prepare: + + $ ( cd gcc-4_4-branch/ && contrib/gcc_update --touch ) + + * Releases of the 4.5 and 4.4 series from + should also be fine, but need the same set of patches as the + `gcc-4_5-branch` needs. + + * [[`src/gnumach`|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`|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`|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 + + + + +## 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. -- cgit v1.2.3