From 7466fb272d4941e71024068949d26891881a081c Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 1 Aug 2011 21:53:26 +0200 Subject: gnumach and mig are now in git, not cvs anymore --- microkernel/mach/mig/gnu_mig/building.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index f92f7dbe..33507283 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -5,9 +5,9 @@ If you want to build the Mach Interface Generator yourself instead of just using ## Getting the Source Code You can chose between getting the [sources from the developers' -RCS](http://savannah.gnu.org/cvs/?group=hurd): +RCS](http://savannah.gnu.org/git/?group=hurd): - $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co mig + $ git clone git://git.savannah.gnu.org:/srv/git/hurd/mig.git ... or (if you are working on a Debian system) the ones that are used for the [current Debian mig package](http://packages.debian.net/source/unstable/mig): -- cgit v1.2.3 From 635249e589fba5c0900923e1bbf1d2e60a3c1f29 Mon Sep 17 00:00:00 2001 From: Andrew Engelbrecht Date: Tue, 2 Aug 2011 21:47:58 -0400 Subject: Separate Debian and non-Debian build instructions --- microkernel/mach/mig/gnu_mig/building.mdwn | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index 33507283..7d2f2ea3 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -4,8 +4,7 @@ If you want to build the Mach Interface Generator yourself instead of just using ## Getting the Source Code -You can chose between getting the [sources from the developers' -RCS](http://savannah.gnu.org/git/?group=hurd): +You can chose between getting the [sources from the developers' RCS](http://savannah.gnu.org/git/?group=hurd): $ git clone git://git.savannah.gnu.org:/srv/git/hurd/mig.git @@ -17,25 +16,16 @@ Please see the Debian [[hurd/running/debian/FAQ]] before using _apt-get source_. The unpacked source tree is around 1 MiB, and the build tree also is around 1 MiB. -## Preparing for the Build +## On Debian Systems: -### ... on Debian systems +### Preparing for the Build Building the Mach Interface Generator requires the _build-essential_ and _fakeroot_ packages, their dependencies and additional packages that are specified by the source mig package: # apt-get install build-essential fakeroot # apt-get build-dep mig -### ... on non-Debian systems - -Building the Mach Interface Generator requires a C compiler, a standard C library (with corresponding header files) and your favourite flavor of awk (gawk), yacc (bison), lex (flex) and make. - -Additionally, you need to have GNU Mach's header files installed. See -[[mach/gnumach/building]] about how to do that, then come back here. - -## Building and Installing - -### ... a _.deb_ file +### Building and Installing ... a _.deb_ file Change into the directory with the downloaded / unpacked MIG sources (_mig-1.3.1.99_): @@ -47,7 +37,16 @@ Start the build process: You can then install / distribute the _.deb_ file which will drop out one directory above the current one. -### [TODO] +## On non-Debian Systems: + +### Preparing for the Build + +Building the Mach Interface Generator requires a C compiler, a standard C library (with corresponding header files) and your favourite flavor of awk (gawk), yacc (bison), lex (flex) and make. + +Additionally, you need to have GNU Mach's header files installed. See +[[mach/gnumach/building]] about how to do that, then come back here. + +### Building and Installing The Mach Interface Generator has to be built in a separate directory: -- cgit v1.2.3 From 04696f4f6ffc57e2e7787160eab334e34fc5adfe Mon Sep 17 00:00:00 2001 From: Andrew Engelbrecht Date: Tue, 2 Aug 2011 22:05:54 -0400 Subject: Mention 32 bit lib, also autoreconf; formatting --- microkernel/mach/mig/gnu_mig/building.mdwn | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index 7d2f2ea3..23dad10c 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -41,22 +41,27 @@ You can then install / distribute the _.deb_ file which will drop out one direct ### Preparing for the Build -Building the Mach Interface Generator requires a C compiler, a standard C library (with corresponding header files) and your favourite flavor of awk (gawk), yacc (bison), lex (flex) and make. +Building the Mach Interface Generator requires a C compiler, a standard 32 bit C library (with corresponding header files) and your favourite flavor of awk (gawk), yacc (bison), lex (flex) and make. -Additionally, you need to have GNU Mach's header files installed. See -[[mach/gnumach/building]] about how to do that, then come back here. +Additionally, you need to have GNU Mach's header files installed. See [[mach/gnumach/building]] about how to do that, then come back here. ### Building and Installing +First, generate the configuration files: + + $ cd mig + $ autoreconf --install + The Mach Interface Generator has to be built in a separate directory: + $ cd .. $ mkdir mig-build $ cd mig-build -Find the root directory where you installed GNU Mach's header files and where you now intend to install the Mach Interface Generator (_~/gnu_) and the path to your Mach Interface Generator sources (\_[...]/mig) and configure it: +Find the root directory where you installed GNU Mach's header files and where you now intend to install the Mach Interface Generator (_~/gnu_) and the path to your Mach Interface Generator sources (../mig) and configure it: $ GNU=~/gnu - $ TARGET_CPPFLAGS=-I"$GNU"/include [...]/mig/configure --prefix="$GNU" + $ TARGET_CPPFLAGS=-I"$GNU"/include ../mig/configure --prefix="$GNU" --host=i686-unknown-linux-gnu Build and install the Mach Interface Generator into _$GNU_, i.e. _~/gnu/_ in our example: -- cgit v1.2.3 From 576de1b01ecf03d4e175600884e0bf8ff574dcc3 Mon Sep 17 00:00:00 2001 From: Andrew Engelbrecht Date: Tue, 2 Aug 2011 22:11:13 -0400 Subject: Make clarification about building with 64 bit --- microkernel/mach/mig/gnu_mig/building.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index 23dad10c..57057d34 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -63,7 +63,7 @@ Find the root directory where you installed GNU Mach's header files and where yo $ GNU=~/gnu $ TARGET_CPPFLAGS=-I"$GNU"/include ../mig/configure --prefix="$GNU" --host=i686-unknown-linux-gnu -Build and install the Mach Interface Generator into _$GNU_, i.e. _~/gnu/_ in our example: +The --host flag above is necessary if you are building on a 64 bit machine. Build and install the Mach Interface Generator into _$GNU_, i.e. _~/gnu/_ in our example: $ make all install -- cgit v1.2.3 From 0724e2c67077fc768e2fef76da45078d4bca4026 Mon Sep 17 00:00:00 2001 From: Andrew Engelbrecht Date: Tue, 2 Aug 2011 22:26:03 -0400 Subject: Question: is --host flag always needed? --- microkernel/mach/mig/gnu_mig/discussion.mdwn | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 microkernel/mach/mig/gnu_mig/discussion.mdwn (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/mig/gnu_mig/discussion.mdwn b/microkernel/mach/mig/gnu_mig/discussion.mdwn new file mode 100644 index 00000000..e5a4dea3 --- /dev/null +++ b/microkernel/mach/mig/gnu_mig/discussion.mdwn @@ -0,0 +1,6 @@ +# Builing MIG + +## Non-cross-compiling + +[[samuelthibault]] mentioned that I should make clear what compiler options, etc. are only needed if compiling on a 64 bit computer. However, I don't know if the --host=i686... option is needed, here and when making gnumach, in case there may be some other default on 32 bit computers? --[[sudoman]] + -- cgit v1.2.3 From 2dbac97ca00a3ea201c4a1a2b2d7a7be0b2e05b0 Mon Sep 17 00:00:00 2001 From: Andrew Engelbrecht Date: Wed, 3 Aug 2011 08:50:52 -0400 Subject: Separate 32 and 64 bit instructions --- microkernel/mach/gnumach/building.mdwn | 7 +++++-- microkernel/mach/mig/gnu_mig/building.mdwn | 7 ++++++- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/gnumach/building.mdwn b/microkernel/mach/gnumach/building.mdwn index 178a89c0..08f4b656 100644 --- a/microkernel/mach/gnumach/building.mdwn +++ b/microkernel/mach/gnumach/building.mdwn @@ -67,8 +67,11 @@ GNU Mach and its headers should be built in separate directories: $ mkdir gnumach-build-h $ cd gnumach-build-h -Find the path to your GNU Mach sources (`../gnumach`) and configure -it (the --host flag is needed for 64 bit systems): +Find the path to your GNU Mach sources (`../gnumach`) and configure it: + + $ ../gnumach/configure --prefix= + +Instead, use the --host flag on 64 bit systems: $ ../gnumach/configure --prefix= --host=i686-unknown-linux-gnu diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index 57057d34..9c313b3b 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -60,10 +60,15 @@ The Mach Interface Generator has to be built in a separate directory: Find the root directory where you installed GNU Mach's header files and where you now intend to install the Mach Interface Generator (_~/gnu_) and the path to your Mach Interface Generator sources (../mig) and configure it: + $ GNU=~/gnu + $ TARGET_CPPFLAGS=-I"$GNU"/include ../mig/configure + +The --host flag is necessary if you are building on a 64 bit machine: + $ GNU=~/gnu $ TARGET_CPPFLAGS=-I"$GNU"/include ../mig/configure --prefix="$GNU" --host=i686-unknown-linux-gnu -The --host flag above is necessary if you are building on a 64 bit machine. Build and install the Mach Interface Generator into _$GNU_, i.e. _~/gnu/_ in our example: +Build and install the Mach Interface Generator into _$GNU_, i.e. _~/gnu/_ in our example: $ make all install -- cgit v1.2.3 From 1aaae16a0242a1251b3b5c779513cf92d97a9f85 Mon Sep 17 00:00:00 2001 From: Andrew Engelbrecht Date: Wed, 3 Aug 2011 17:26:13 -0400 Subject: MIG and Gnumach should be build in subdirectories --- microkernel/mach/gnumach/building.mdwn | 16 +++++++--------- microkernel/mach/mig/gnu_mig/building.mdwn | 7 +++---- 2 files changed, 10 insertions(+), 13 deletions(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/gnumach/building.mdwn b/microkernel/mach/gnumach/building.mdwn index 08f4b656..8fc1c7a1 100644 --- a/microkernel/mach/gnumach/building.mdwn +++ b/microkernel/mach/gnumach/building.mdwn @@ -61,19 +61,18 @@ First, you have to create the configuartion files: $ cd gnumach $ autoreconf --install -GNU Mach and its headers should be built in separate directories: +GNU Mach and its headers should be built in a subdirectory: - $ cd .. $ mkdir gnumach-build-h $ cd gnumach-build-h Find the path to your GNU Mach sources (`../gnumach`) and configure it: - $ ../gnumach/configure --prefix= + $ ../configure --prefix= -Instead, use the --host flag on 64 bit systems: +Use the --host flag on 64 bit systems: - $ ../gnumach/configure --prefix= --host=i686-unknown-linux-gnu + $ ../configure --prefix= --host=i686-unknown-linux-gnu Install the header files into e.g. `~/gnu/include/`: @@ -85,21 +84,20 @@ Building GNU Mach requires you to have the Mach Interface Generator installed. See [[building_MIG|mig/gnu_mig/building]] about how to do that, then come back here. -GNU Mach should be built in a separate directory: +GNU Mach should be built in a subdirectory: - $ cd .. $ mkdir gnumach-build $ cd gnumach-build Find the path to your GNU Mach sources (`../gnumach`) and configure it: - $ ../gnumach/configure + $ ../configure If you are building on a 64 bit system, do the following instead: $ CPP='gcc -m32 -E -x c -undef -ansi' CC='gcc -m32' LD='ld -melf_i386' - $ ../gnumach/configure --host=i686-unknown-linux-gnu + $ ../configure --host=i686-unknown-linux-gnu Build the kernel image: diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index 9c313b3b..d2d27bc4 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -52,21 +52,20 @@ First, generate the configuration files: $ cd mig $ autoreconf --install -The Mach Interface Generator has to be built in a separate directory: +The Mach Interface Generator should be built in a subdirectory: - $ cd .. $ mkdir mig-build $ cd mig-build Find the root directory where you installed GNU Mach's header files and where you now intend to install the Mach Interface Generator (_~/gnu_) and the path to your Mach Interface Generator sources (../mig) and configure it: $ GNU=~/gnu - $ TARGET_CPPFLAGS=-I"$GNU"/include ../mig/configure + $ TARGET_CPPFLAGS=-I"$GNU"/include ../configure The --host flag is necessary if you are building on a 64 bit machine: $ GNU=~/gnu - $ TARGET_CPPFLAGS=-I"$GNU"/include ../mig/configure --prefix="$GNU" --host=i686-unknown-linux-gnu + $ TARGET_CPPFLAGS=-I"$GNU"/include ../configure --prefix="$GNU" --host=i686-unknown-linux-gnu Build and install the Mach Interface Generator into _$GNU_, i.e. _~/gnu/_ in our example: -- cgit v1.2.3 From 4583168b6fce700fc971aea3f0233d63c08d4cf2 Mon Sep 17 00:00:00 2001 From: Andrew Engelbrecht Date: Wed, 3 Aug 2011 17:58:11 -0400 Subject: Improved line wrapping for 2 pages --- microkernel/mach/gnumach/building.mdwn | 9 +++++---- microkernel/mach/mig/gnu_mig/building.mdwn | 30 +++++++++++++++++++++--------- 2 files changed, 26 insertions(+), 13 deletions(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/gnumach/building.mdwn b/microkernel/mach/gnumach/building.mdwn index fcef1a24..0bd554b4 100644 --- a/microkernel/mach/gnumach/building.mdwn +++ b/microkernel/mach/gnumach/building.mdwn @@ -12,7 +12,8 @@ You can either use the git repository (see Building the Mach Interface Generator from Source -If you want to build the Mach Interface Generator yourself instead of just using a pre-built package, follow these instructions. +If you want to build the Mach Interface Generator yourself instead of just +using a pre-built package, follow these instructions. ## Getting the Source Code -You can chose between getting the [sources from the developers' RCS](http://savannah.gnu.org/git/?group=hurd): +You can chose between getting the [sources from the developers' +RCS](http://savannah.gnu.org/git/?group=hurd): $ git clone git://git.savannah.gnu.org:/srv/git/hurd/mig.git -... or (if you are working on a Debian system) the ones that are used for the [current Debian mig package](http://packages.debian.net/source/unstable/mig): +... or (if you are working on a Debian system) the ones that are used for the +[current Debian mig package](http://packages.debian.net/source/unstable/mig): $ apt-get source mig @@ -20,7 +23,9 @@ The unpacked source tree is around 1 MiB, and the build tree also is around 1 Mi ### Preparing for the Build -Building the Mach Interface Generator requires the _build-essential_ and _fakeroot_ packages, their dependencies and additional packages that are specified by the source mig package: +Building the Mach Interface Generator requires the _build-essential_ and +_fakeroot_ packages, their dependencies and additional packages that are +specified by the source mig package: # apt-get install build-essential fakeroot # apt-get build-dep mig @@ -35,15 +40,19 @@ Start the build process: $ dpkg-buildpackage -us -uc -b -rfakeroot -You can then install / distribute the _.deb_ file which will drop out one directory above the current one. +You can then install / distribute the _.deb_ file which will drop out one +directory above the current one. ## On non-Debian Systems: ### Preparing for the Build -Building the Mach Interface Generator requires a C compiler, a standard 32 bit C library (with corresponding header files) and your favourite flavor of awk (gawk), yacc (bison), lex (flex) and make. +Building the Mach Interface Generator requires a C compiler, a standard 32 bit +C library (with corresponding header files) and your favourite flavor of awk +(gawk), yacc (bison), lex (flex) and make. -Additionally, you need to have GNU Mach's header files installed. See [[mach/gnumach/building]] about how to do that, then come back here. +Additionally, you need to have GNU Mach's header files installed. See +[[mach/gnumach/building]] about how to do that, then come back here. ### Building and Installing @@ -57,7 +66,9 @@ The Mach Interface Generator should be built in a subdirectory: $ mkdir mig-build $ cd mig-build -Find the root directory where you installed GNU Mach's header files and where you now intend to install the Mach Interface Generator (_~/gnu_) and the path to your Mach Interface Generator sources (../mig) and configure it: +Find the root directory where you installed GNU Mach's header files and where +you now intend to install the Mach Interface Generator (_~/gnu_) and the path +to your Mach Interface Generator sources (../mig) and configure it: $ GNU=~/gnu $ TARGET_CPPFLAGS=-I"$GNU"/include ../configure @@ -71,7 +82,8 @@ Build and install the Mach Interface Generator into _$GNU_, i.e. _~/gnu/_ in our $ make all install -To make your _mig_ binary easily available, you should append something like the following to e.g. your _~/.bash\_profile_: +To make your _mig_ binary easily available, you should append something like +the following to e.g. your _~/.bash\_profile_: PATH=~/gnu/bin:$PATH export PATH -- cgit v1.2.3 From 2500a001957eab720d190bf5f53abd3214fe91b7 Mon Sep 17 00:00:00 2001 From: Andrew Engelbrecht Date: Wed, 3 Aug 2011 18:18:22 -0400 Subject: improved some wording --- microkernel/mach/gnumach/building.mdwn | 16 ++++++++-------- microkernel/mach/mig/gnu_mig/building.mdwn | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/gnumach/building.mdwn b/microkernel/mach/gnumach/building.mdwn index 0bd554b4..8284639b 100644 --- a/microkernel/mach/gnumach/building.mdwn +++ b/microkernel/mach/gnumach/building.mdwn @@ -52,7 +52,7 @@ You can now reboot your computer and enjoy the new kernel. ### Preparing for the Build -Building GNU Mach requires a C compiler, a static 32 bit standard C library and +Building GNU Mach requires a C compiler, a _static_ 32 bit standard C library and your favourite flavor of awk (gawk) and GNU make. ### Installing the Header Files First @@ -60,7 +60,7 @@ your favourite flavor of awk (gawk) and GNU make. In order to build GNU Mach, you must build and install MIG, which requires that you install the GNU Mach header files: -First, you have to create the configuartion files: +First, create the configuartion files: $ cd gnumach $ autoreconf --install @@ -84,9 +84,9 @@ Install the header files into e.g. `~/gnu/include/`: ### Building and Installing -Building GNU Mach requires you to have the Mach Interface Generator installed. -See [[building_MIG|mig/gnu_mig/building]] about how to do that, then come back -here. +After you've already installed the header files (above), as well as the the +Mach Interface Generator, you may finish building GNU Mach. (See +[[building_MIG|mig/gnu_mig/building]], then come back here.) GNU Mach should be built in a subdirectory create it if you have not already. @@ -94,8 +94,8 @@ GNU Mach should be built in a subdirectory create it if you have not already. $ cd gnumach-build If you previously ran ../configure for installing the header files, you may run -into a bug when you configure and run make below. If that is the case, run "rm --rf *" in the _build_ directory, and reconfigure. +into a bug when you configure and run make below. If that is the case, empty +the _build_ directory, and reconfigure. $ cd gnumach-build $ rm -rf * @@ -117,7 +117,7 @@ Optionally run the (tiny) test suite: $ make check -You can then install and use `gnumach.gz`. +You can now install and use `gnumach.gz`. [TODO] diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index f21d504e..6d17e7ef 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -52,7 +52,7 @@ C library (with corresponding header files) and your favourite flavor of awk (gawk), yacc (bison), lex (flex) and make. Additionally, you need to have GNU Mach's header files installed. See -[[mach/gnumach/building]] about how to do that, then come back here. +[[building GNU Mach|mach/gnumach/building]] about how to do that, then come back here. ### Building and Installing -- cgit v1.2.3 From 02524ab022cb7a26c510d97e25cc3bb12998ff6f Mon Sep 17 00:00:00 2001 From: antrik Date: Wed, 3 Aug 2011 23:05:18 +0200 Subject: mig/building: Refer to the correct Git repo listing, not the dummy --- microkernel/mach/mig/gnu_mig/building.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index 6d17e7ef..1712e990 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -6,7 +6,7 @@ using a pre-built package, follow these instructions. ## Getting the Source Code You can chose between getting the [sources from the developers' -RCS](http://savannah.gnu.org/git/?group=hurd): +RCS](http://git.savannah.gnu.org/cgit/hurd/): $ git clone git://git.savannah.gnu.org:/srv/git/hurd/mig.git -- cgit v1.2.3 From 57b19ed57280f4642320dcc2b36c8ffe3b28f225 Mon Sep 17 00:00:00 2001 From: Andrew Engelbrecht Date: Wed, 3 Aug 2011 19:09:37 -0400 Subject: no need to "find" what's under your nose --- microkernel/mach/gnumach/building.mdwn | 2 +- microkernel/mach/mig/gnu_mig/building.mdwn | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/gnumach/building.mdwn b/microkernel/mach/gnumach/building.mdwn index eb3e0819..4c7cee26 100644 --- a/microkernel/mach/gnumach/building.mdwn +++ b/microkernel/mach/gnumach/building.mdwn @@ -70,7 +70,7 @@ GNU Mach and its headers should be built in a subdirectory: $ mkdir gnumach-build $ cd gnumach-build -Find the path to your GNU Mach sources (`..`) and configure it: +Run configure: $ ../configure diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index 1712e990..031a9b3f 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -67,8 +67,8 @@ The Mach Interface Generator should be built in a subdirectory: $ cd mig-build Find the root directory where you installed GNU Mach's header files and where -you now intend to install the Mach Interface Generator (_~/gnu_) and the path -to your Mach Interface Generator sources (../mig) and configure it: +you now intend to install the Mach Interface Generator (_~/gnu_), and run +configure: $ GNU=~/gnu $ TARGET_CPPFLAGS=-I"$GNU"/include ../configure -- cgit v1.2.3 From 4c9e4221fdca00de9a0a8918dacc858819d8ca0c Mon Sep 17 00:00:00 2001 From: Andrew Engelbrecht Date: Wed, 3 Aug 2011 19:12:03 -0400 Subject: generalize mig install instructions --- microkernel/mach/mig/gnu_mig/building.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index 031a9b3f..673dcacf 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -34,7 +34,7 @@ specified by the source mig package: Change into the directory with the downloaded / unpacked MIG sources (_mig-1.3.1.99_): - $ cd mig-1.3.1.99 + $ cd mig-X.X.X.XX Start the build process: -- cgit v1.2.3 From 32bef600e8063282f5077b08a69f63cc0eb9d591 Mon Sep 17 00:00:00 2001 From: Andrew Engelbrecht Date: Wed, 3 Aug 2011 19:14:09 -0400 Subject: missed a spot --- microkernel/mach/mig/gnu_mig/building.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index 673dcacf..9a83e367 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -32,7 +32,7 @@ specified by the source mig package: ### Building and Installing ... a _.deb_ file -Change into the directory with the downloaded / unpacked MIG sources (_mig-1.3.1.99_): +Change into the directory with the downloaded / unpacked MIG sources (_mig-SomeVersionNumber): $ cd mig-X.X.X.XX -- cgit v1.2.3 From af52b8b7b4f3c096fd8abed7e901b57f07c419a2 Mon Sep 17 00:00:00 2001 From: Andrew Engelbrecht Date: Wed, 3 Aug 2011 19:30:37 -0400 Subject: Actually, we need '--prefix='. --- microkernel/mach/gnumach/building.mdwn | 4 ++-- microkernel/mach/mig/gnu_mig/building.mdwn | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/gnumach/building.mdwn b/microkernel/mach/gnumach/building.mdwn index 4c7cee26..f4c59d9f 100644 --- a/microkernel/mach/gnumach/building.mdwn +++ b/microkernel/mach/gnumach/building.mdwn @@ -72,11 +72,11 @@ GNU Mach and its headers should be built in a subdirectory: Run configure: - $ ../configure + $ ../configure --prefix= Use the --host flag and some options on 64 bit systems: - $ CPP='gcc -m32 -E -x c -undef -ansi' CC='gcc -m32' LD='ld -melf_i386' ../configure --host=i686-unknown-linux-gnu + $ CPP='gcc -m32 -E -x c -undef -ansi' CC='gcc -m32' LD='ld -melf_i386' ../configure --prefix= --host=i686-unknown-linux-gnu Install the header files into e.g. `~/gnu/include/`: diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index 9a83e367..d5268221 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -71,7 +71,7 @@ you now intend to install the Mach Interface Generator (_~/gnu_), and run configure: $ GNU=~/gnu - $ TARGET_CPPFLAGS=-I"$GNU"/include ../configure + $ TARGET_CPPFLAGS=-I"$GNU"/include ../configure --prefix="$GNU" The --host flag is necessary if you are building on a 64 bit machine: -- cgit v1.2.3 From e0f350c7d6e3af901097e43fe2c1bc0efb237f60 Mon Sep 17 00:00:00 2001 From: Andrew Engelbrecht Date: Wed, 3 Aug 2011 19:45:28 -0400 Subject: rename build directories to 'build' --- microkernel/mach/gnumach/building.mdwn | 4 ++-- microkernel/mach/mig/gnu_mig/building.mdwn | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/gnumach/building.mdwn b/microkernel/mach/gnumach/building.mdwn index f4c59d9f..490c5497 100644 --- a/microkernel/mach/gnumach/building.mdwn +++ b/microkernel/mach/gnumach/building.mdwn @@ -67,8 +67,8 @@ First, create the configuartion files: GNU Mach and its headers should be built in a subdirectory: - $ mkdir gnumach-build - $ cd gnumach-build + $ mkdir build + $ cd build Run configure: diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index d5268221..4d4be660 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -63,8 +63,8 @@ First, generate the configuration files: The Mach Interface Generator should be built in a subdirectory: - $ mkdir mig-build - $ cd mig-build + $ mkdir build + $ cd build Find the root directory where you installed GNU Mach's header files and where you now intend to install the Mach Interface Generator (_~/gnu_), and run -- cgit v1.2.3 From 358bc1d0e781b7237b2fee394f7fae2bfcd7b078 Mon Sep 17 00:00:00 2001 From: antrik Date: Thu, 4 Aug 2011 07:14:40 +0200 Subject: mach/building: Reword for clarity --- microkernel/mach/gnumach/building.mdwn | 39 ++++++++++++++---------------- microkernel/mach/mig/gnu_mig/building.mdwn | 25 +++++++++---------- 2 files changed, 30 insertions(+), 34 deletions(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/gnumach/building.mdwn b/microkernel/mach/gnumach/building.mdwn index 5f53d83d..b513d52f 100644 --- a/microkernel/mach/gnumach/building.mdwn +++ b/microkernel/mach/gnumach/building.mdwn @@ -12,7 +12,7 @@ You can either use the git repository (see Preparing for the Build -Building the Mach Interface Generator requires the _build-essential_ and -_fakeroot_ packages, their dependencies and additional packages that are -specified by the source mig package: +Building MIG requires the *build-essential* and *fakeroot* packages, +and some additional dependencies specified by the mig source package: # apt-get install build-essential fakeroot # apt-get build-dep mig ### Building and Installing ... a _.deb_ file -Change into the directory with the downloaded / unpacked MIG sources (_mig-SomeVersionNumber): +Change into the directory with the downloaded / unpacked MIG sources: $ cd mig-X.X.X.XX @@ -40,15 +39,15 @@ Start the build process: $ dpkg-buildpackage -us -uc -b -rfakeroot -You can then install / distribute the _.deb_ file which will drop out one -directory above the current one. +This will create a _.deb_ package in the parent directory, +which you can then install on your system. ## On non-Debian Systems: ### Preparing for the Build Building the Mach Interface Generator requires a C compiler, a standard 32 bit -C library (with corresponding header files) and your favourite flavor of awk +C library (with corresponding header files), your favourite flavor of awk (gawk), yacc (bison), lex (flex) and make. Additionally, you need to have GNU Mach's header files installed. See @@ -61,24 +60,24 @@ First, generate the configuration files: $ cd mig $ autoreconf --install -The Mach Interface Generator should be built in a subdirectory: +The Mach Interface Generator has to be built in a separate build directory: $ mkdir build $ cd build -Find the root directory where you installed GNU Mach's header files and where -you now intend to install the Mach Interface Generator (_~/gnu_), and run +Find the base directory where you installed GNU Mach's header files and where +you now intend to install the Mach Interface Generator (e.g. _~/gnu_), and run configure: $ GNU=~/gnu $ TARGET_CPPFLAGS=-I"$GNU"/include ../configure --prefix="$GNU" -The --host flag is necessary if you are building on a 64 bit machine: +If you are building on a 64 bit machine, you need to add a --host option: $ GNU=~/gnu $ TARGET_CPPFLAGS=-I"$GNU"/include ../configure --prefix="$GNU" --host=i686-unknown-linux-gnu -Build and install the Mach Interface Generator into _$GNU_, i.e. _~/gnu/_ in our example: +Build and install the Mach Interface Generator into _$GNU_ (i.e. _~/gnu/_ in our example): $ make all install -- cgit v1.2.3 From 016433b123ce4b60eee550dbdb7812ba623d16e7 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 30 Aug 2011 12:03:36 +0200 Subject: Minor tweaks. --- hurd/porting/system_api_limitations.mdwn | 2 +- hurd/running/debian/dhcp.mdwn | 7 +++ hurd/running/debian/patch_submission.mdwn | 7 +-- hurd/translator/pfinet/dhcp.mdwn | 37 ++++++-------- microkernel/mach/gnumach/building.mdwn | 11 +++++ microkernel/mach/gnumach/debugging.mdwn | 34 ++++++++----- microkernel/mach/mig/gnu_mig/building.mdwn | 11 +++++ .../mach/mig/gnu_mig/building/discussion.mdwn | 16 ++++++ microkernel/mach/mig/gnu_mig/discussion.mdwn | 6 --- open_issues/e2fsck_i_file_acl_hi.mdwn | 5 +- open_issues/libpthread_dlopen.mdwn | 14 +++--- open_issues/perl.mdwn | 13 ++--- open_issues/runit.mdwn | 57 +++++++++------------- open_issues/sync_but_still_unclean_filesystem.mdwn | 5 +- open_issues/virtualbox.mdwn | 30 ++++++------ source_repositories.mdwn | 17 ++++--- 16 files changed, 154 insertions(+), 118 deletions(-) create mode 100644 microkernel/mach/mig/gnu_mig/building/discussion.mdwn delete mode 100644 microkernel/mach/mig/gnu_mig/discussion.mdwn (limited to 'microkernel/mach/mig') diff --git a/hurd/porting/system_api_limitations.mdwn b/hurd/porting/system_api_limitations.mdwn index 82327dde..1615ccc0 100644 --- a/hurd/porting/system_api_limitations.mdwn +++ b/hurd/porting/system_api_limitations.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2003, 2004, 2005, 2009, 2010 Free Software +[[!meta copyright="Copyright © 2003, 2004, 2005, 2009, 2010, 2011 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable diff --git a/hurd/running/debian/dhcp.mdwn b/hurd/running/debian/dhcp.mdwn index f316981d..8d351aae 100644 --- a/hurd/running/debian/dhcp.mdwn +++ b/hurd/running/debian/dhcp.mdwn @@ -22,3 +22,10 @@ fatal. Debian GNU/Hurd doesn't currently execute's Debian standard `/etc/rcS.d/*` boot scripts, but has its own `/libexec/rc` script -- which integrates scripts from `/etc/rc.boot/` instead. + + +# Open Issues + + * [[!debbug 616290]] + + * [[Proper Hurdy DHCP support|hurd/translator/pfinet/dhcp]] diff --git a/hurd/running/debian/patch_submission.mdwn b/hurd/running/debian/patch_submission.mdwn index d2d10747..d2b7b776 100644 --- a/hurd/running/debian/patch_submission.mdwn +++ b/hurd/running/debian/patch_submission.mdwn @@ -1,12 +1,13 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 2011 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]]."]]"""]] If you fixed a Debian package which *FTBFS* (fails to build from source), you should submit the patch so that all users can profit from your work. diff --git a/hurd/translator/pfinet/dhcp.mdwn b/hurd/translator/pfinet/dhcp.mdwn index 79ed8966..456d0c84 100644 --- a/hurd/translator/pfinet/dhcp.mdwn +++ b/hurd/translator/pfinet/dhcp.mdwn @@ -1,31 +1,33 @@ -[[!tag open_issue_hurd]] +[[!meta copyright="Copyright © 2002, 2003, 2005, 2011 Free Software Foundation, +Inc."]] -According to the following thread, no port should be needed since all the patches that have been applied, including the one concerning the thread. In fact, the thread finishes without concluding whether the patch has been applied or not. You can grab it in the thread, anyway. +[[!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]]."]]"""]] -[Link to thread](http://lists.gnu.org/archive/html/bug-hurd/2005-01/msg00025.html) +[[!tag open_issue_hurd]] -The thread starts at Jan 4th 2005 until Jan 6th and is only retaken at April 14th in [this thread](http://lists.gnu.org/archive/html/bug-hurd/2005-01/msg00025.html). +[[Debian GNU/Hurd|running/debian]] has some script hackery to get +[[running/debian/DHCP]] going. --- 2011 +--- -The ISC dhcp client was ported, available in the isc-dhcp-client Debian package, [[http://bugs.debian.org/616290]]. +According to the following thread, no port should be needed since all the patches that have been applied, including the one concerning the thread. In fact, the thread finishes without concluding whether the patch has been applied or not. You can grab it in the thread, anyway. --- [[Main/ThadeuCascardo]] - 29 Sep 2005 +[Link to thread](http://lists.gnu.org/archive/html/bug-hurd/2005-01/msg00025.html) -No DHCP client has been ported to the Hurd yet. +The thread starts at Jan 4th 2005 until Jan 6th and is only retaken at April 14th in [this thread](http://lists.gnu.org/archive/html/bug-hurd/2005-01/msg00025.html). [This](http://mail.gnu.org/archive/html/help-hurd/2003-10/msg00016.html) thread on help-hurd has a little more info on what's still needed for DHCP. --- [[Main/GregBuchholz]] - 09 Oct 2003 - Found this [message](http://mail.gnu.org/archive/html/bug-hurd/2003-08/msg00045.html) about DHCP capabilities in the Hurd encouraging. --- [[Main/GregBuchholz]] - 03 Sep 2003 - * Tom Hart began a [discussion ](http://mail.gnu.org/pipermail/help-hurd/2002-October/006643.html) of 14 posts in Oct 2002. --- [[Main/GrantBow]] - 20 Oct 2002 - The beginnings of a DHCP translator is available in the Hurd sources on Savannah: [hurd/trans/pump.c](http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/trans/pump.c?rev=1.3&content-type=text/vnd.viewcvs-markup) Unfortunately our current TCP/IP stack, the pfinet translator, lacks support for the AF\_PACKET interface as well as sending packets with an IP address of 0.0.0.0. @@ -42,10 +44,3 @@ Neal Walfield on bug-hurd replies: > Anyone else know the status of getting these compiled and functional? We need to be able to send to the DHCP server with ip address 0.0.0.0. - --- [[Main/JoachimNilsson]] - 12 Nov 2002 - ---- - -[[Debian GNU/Hurd|running/debian]] has some script hackery to get -[[running/debian/DHCP]] going. diff --git a/microkernel/mach/gnumach/building.mdwn b/microkernel/mach/gnumach/building.mdwn index 24a73608..afcfac74 100644 --- a/microkernel/mach/gnumach/building.mdwn +++ b/microkernel/mach/gnumach/building.mdwn @@ -1,3 +1,14 @@ +[[!meta copyright="Copyright © 2006, 2007, 2008, 2011 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]]."]]"""]] + # Building [[GNU_Mach|gnumach]] from Source If you want to build the [[GNU_Mach|gnumach]] kernel yourself instead of just using a diff --git a/microkernel/mach/gnumach/debugging.mdwn b/microkernel/mach/gnumach/debugging.mdwn index 596e4da0..f657e7cc 100644 --- a/microkernel/mach/gnumach/debugging.mdwn +++ b/microkernel/mach/gnumach/debugging.mdwn @@ -9,7 +9,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]]."]]"""]] -Here are some hints to debug with GNU Mach +Here are some hints to debug with GNU Mach. + +[[!toc levels=2]] + + +# Kernel Debugger Mach has a built-in kernel debugger. [Manual](http://www.gnu.org/software/hurd/gnumach-doc/Kernel-Debugger.html). @@ -20,27 +25,25 @@ Then, reproduce the issue again. If something like a kernel trap happens, you wi If you are running in kvm or qemu, it is convenient to use the curses frontend to be able to copy/paste. -The debugger has an extensive documentation on http://www.gnu.org/software/hurd/gnumach-doc/Kernel-Debugger.html , but a quick start is the following. - To get the register values, type -show registers + show registers To get a backtrace, type trace, which will print both function return addresses and function parameters, such as -0x107cf1(8088488,5e,40000008,2aa008,0) -0x1071bc(0,0,0,0,0) -0x106831(24fe00,2000,b,800,0) + 0x107cf1(8088488,5e,40000008,2aa008,0) + 0x1071bc(0,0,0,0,0) + 0x106831(24fe00,2000,b,800,0) Run the addr2line tool on the return addresses: -addr2line -i -f -e /boot/gnumach 0x107cf1 0x1071bc 0x106831 + $ addr2line -i -f -e /boot/gnumach 0x107cf1 0x1071bc 0x106831 This will print the source code lines of the backtrace. To examine the backtrace of some given thread, use -show all thread/u + show all thread/u to get the whole listing of all tasks and threads. You can then use trace/t to trace a specific thread. @@ -48,25 +51,28 @@ Unfortunately, userland and kernelland use the same range of addresses, so one c To examine a variable, use nm /boot/gnumach to get the address of the variable (e.g. 0x123400), and use -x 0x123400 + x 0x123400 to read it. One can also write to it by using -w 0x123400 + w 0x123400 Another interesting feature is watching a variable, by using -watch 0x123400 + watch 0x123400 and then type continue, to let Mach continue execution. The debugger will be entered again on any change in that variable. The watch is implemented in hardware, so it does not disturb or slow down execution at all. +# GDB in QEMU When you're [[running_a_system_in_QEMU|hurd/running/qemu]] you can directly [use GDB on the running kernel](http://www.nongnu.org/qemu/qemu-doc.html#SEC48). +# Code Inside the Kernel + Alternatively you can use an approach like this one: add the following code snippet to `device/ds_routines.c`'s `ds_device_open` function, right at the top of the function, and modify the code as needed. @@ -105,6 +111,8 @@ This is especially useful if you need to manually trigger some stuff inside the running kernel, as with the *D1* example. +## Writing to the Screen Buffer + If you're doing real low level debugging, you might want to put variations of the following snipped into the code, this code will write a `#` character at line `[LINE]`, column `[COLUMN]` on the screen: @@ -118,6 +126,8 @@ some place when running the kernel inside QEMU, as QEMU somehow decides not to update its display buffer anymore under certain conditions. +# Halting the CPU and Examining Registers + IRC, freenode, #hurd, 2011-07-14: one ugly trick i use when printf isn't available is to halt the diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index 759c1a84..cd588341 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -1,3 +1,14 @@ +[[!meta copyright="Copyright © 2006, 2007, 2008, 2011 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]]."]]"""]] + # Building the Mach Interface Generator from Source If you want to build the Mach Interface Generator yourself instead of just diff --git a/microkernel/mach/mig/gnu_mig/building/discussion.mdwn b/microkernel/mach/mig/gnu_mig/building/discussion.mdwn new file mode 100644 index 00000000..d7636158 --- /dev/null +++ b/microkernel/mach/mig/gnu_mig/building/discussion.mdwn @@ -0,0 +1,16 @@ +[[!meta copyright="Copyright © 2011 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]]."]]"""]] + +# Non-cross-compiling + +[[!tag open_issue_mig]] + +[[samuelthibault]] mentioned that I should make clear what compiler options, etc. are only needed if compiling on a 64 bit computer. However, I don't know if the --host=i686... option is needed, here and when making gnumach, in case there may be some other default on 32 bit computers? --[[sudoman]] + diff --git a/microkernel/mach/mig/gnu_mig/discussion.mdwn b/microkernel/mach/mig/gnu_mig/discussion.mdwn deleted file mode 100644 index e5a4dea3..00000000 --- a/microkernel/mach/mig/gnu_mig/discussion.mdwn +++ /dev/null @@ -1,6 +0,0 @@ -# Builing MIG - -## Non-cross-compiling - -[[samuelthibault]] mentioned that I should make clear what compiler options, etc. are only needed if compiling on a 64 bit computer. However, I don't know if the --host=i686... option is needed, here and when making gnumach, in case there may be some other default on 32 bit computers? --[[sudoman]] - diff --git a/open_issues/e2fsck_i_file_acl_hi.mdwn b/open_issues/e2fsck_i_file_acl_hi.mdwn index f055babe..d03b733c 100644 --- a/open_issues/e2fsck_i_file_acl_hi.mdwn +++ b/open_issues/e2fsck_i_file_acl_hi.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 2011 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 @@ -34,4 +34,5 @@ IRC, unknown channel, unknown date. k but it's always passive translator nodes -This is due to an erroneous read/write from e2fsck, see http://sourceforge.net/tracker/?func=detail&aid=3379227&group_id=2406&atid=102406 +This is due to an erroneous read/write from e2fsck, see +. diff --git a/open_issues/libpthread_dlopen.mdwn b/open_issues/libpthread_dlopen.mdwn index 0cd761f2..0d3628ec 100644 --- a/open_issues/libpthread_dlopen.mdwn +++ b/open_issues/libpthread_dlopen.mdwn @@ -15,7 +15,7 @@ IRC, OFTC, #debian-hurd, 2011-07-21. there's one known issue with pthreads you can't dlopen() it -[ if the main application is not already linked against it ] +... if the main application is not already linked against it. which also means you can't dlopen() a module which depends on it if the main application hasn't used -lpthread already @@ -43,12 +43,12 @@ The fix thus being: link the main application with -lpthread. The same symptom appears in an odd case, for instance: -buildd@hurd:~$ ldd /usr/bin/openjade - libthreads.so.0.3 => /lib/libthreads.so.0.3 (0x0103d000) - libosp.so.5 => /usr/lib/libosp.so.5 (0x01044000) - libpthread.so.0.3 => /lib/libpthread.so.0.3 (0x01221000) - libnsl.so.1 => /lib/i386-gnu/libnsl.so.1 (0x01232000) -... + buildd@hurd:~$ ldd /usr/bin/openjade + libthreads.so.0.3 => /lib/libthreads.so.0.3 (0x0103d000) + libosp.so.5 => /usr/lib/libosp.so.5 (0x01044000) + libpthread.so.0.3 => /lib/libpthread.so.0.3 (0x01221000) + libnsl.so.1 => /lib/i386-gnu/libnsl.so.1 (0x01232000) + [...] openjade links against *both* libthreads and libpthread. The result is that libc early-initializes libthreads only, and thus libpthread is not early-initialized, diff --git a/open_issues/perl.mdwn b/open_issues/perl.mdwn index c7428cb5..45680328 100644 --- a/open_issues/perl.mdwn +++ b/open_issues/perl.mdwn @@ -10,16 +10,13 @@ License|/fdl]]."]]"""]] [[!meta title="Foster Perl programming"]] -A dependency loop in Debian GNU/Hurd currently leads to +[[!template id=note text="""**2011-08**. A dependency loop in Debian GNU/Hurd +currently leads to: *Could not perform immediate configuration on 'perl'*. +Easy workaround: -`Could not perform immediate configuration on 'perl'` - -Simply use - -`apt-get install perl perl-base -o APT::Immediate-Configure=false` - -to break the loop. + # apt-get install perl perl-base -o APT::Immediate-Configure=false +"""]] Resolve issues uncovered by Perl's test suite, and enable Hurd-specific diff --git a/open_issues/runit.mdwn b/open_issues/runit.mdwn index 6b336ef7..659b81ea 100644 --- a/open_issues/runit.mdwn +++ b/open_issues/runit.mdwn @@ -1,12 +1,13 @@ -[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 2009, 2011 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]]."]]"""]] [[!tag open_issue_porting]] @@ -26,36 +27,24 @@ Originally answered by Samuel Thibault: Usual issue with rpctrace: it does not support fork(). -I've checked a backtrace in gdb, got this: - - 0x0105af6c in mach_msg_trap () - at /build/eglibc-jWVnRE/eglibc-2.13/build-tree/hurd-i386-libc/mach/mach_msg_trap.S:2 - -1 0x0105b769 in __mach_msg (msg=0x1024af8, option=258, send_size=0, rcv_size=40, rcv_name=140, - timeout=1000020, notify=0) at msg.c:110 - -2 0x01062251 in _hurd_select (nfds=2, pollfds=0x1024dc0, readfds=0x0, writefds=0x0, exceptfds=0x0, - timeout=0x1024bbc, sigmask=0x0) at hurdselect.c:324 - -3 0x0114427b in __poll (fds=0x1024dc0, nfds=2, timeout=1000020) at ../sysdeps/mach/hurd/poll.c:48 - -4 0x0804b770 in iopause (x=0x1024dc0, len=2, deadline=0x1024dd8, stamp=0x1024de8) at iopause.c:29 - -5 0x08048efc in main (argc=2, argv=0x1024e94) at runsv.c:543 - - -and main() shows up as: - - sig_unblock(sig_term); - - sig_unblock(sig_child); - - -> iopause(x, 2 +haslog, &deadline, &now); - - sig_block(sig_term); - - sig_block(sig_child); - + I've checked a backtrace in gdb, got this: + + 0x0105af6c in mach_msg_trap () + at /build/eglibc-jWVnRE/eglibc-2.13/build-tree/hurd-i386-libc/mach/mach_msg_trap.S:2 + 1 0x0105b769 in __mach_msg (msg=0x1024af8, option=258, send_size=0, rcv_size=40, rcv_name=140, + timeout=1000020, notify=0) at msg.c:110 + 2 0x01062251 in _hurd_select (nfds=2, pollfds=0x1024dc0, readfds=0x0, writefds=0x0, exceptfds=0x0, + timeout=0x1024bbc, sigmask=0x0) at hurdselect.c:324 + 3 0x0114427b in __poll (fds=0x1024dc0, nfds=2, timeout=1000020) at ../sysdeps/mach/hurd/poll.c:48 + 4 0x0804b770 in iopause (x=0x1024dc0, len=2, deadline=0x1024dd8, stamp=0x1024de8) at iopause.c:29 + 5 0x08048efc in main (argc=2, argv=0x1024e94) at runsv.c:543 + + and main() shows up as: + + sig_unblock(sig_term); + sig_unblock(sig_child); + -> iopause(x, 2 +haslog, &deadline, &now); + sig_block(sig_term); + sig_block(sig_child); So it simply looks like the known "signals don't interrupt select" bug. - diff --git a/open_issues/sync_but_still_unclean_filesystem.mdwn b/open_issues/sync_but_still_unclean_filesystem.mdwn index 8a0b1d49..c8a37169 100644 --- a/open_issues/sync_but_still_unclean_filesystem.mdwn +++ b/open_issues/sync_but_still_unclean_filesystem.mdwn @@ -33,6 +33,5 @@ Of course, [[hurd/translator/ext2fs]] is meant to be doing this to-disk synchronization internally upon translator shutdown, but evidently it doesn't in all cases. - Apparently diskfs simply does not set filesystem as readonly: - - http://lists.gnu.org/archive/html/bug-hurd/2011-08/msg00024.html +Apparently diskfs simply does not set filesystems as read-only: +. diff --git a/open_issues/virtualbox.mdwn b/open_issues/virtualbox.mdwn index 246313ff..9440284f 100644 --- a/open_issues/virtualbox.mdwn +++ b/open_issues/virtualbox.mdwn @@ -8,15 +8,16 @@ 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]]."]]"""]] -[[!meta title="xattr: extended attributes"]] - [[!tag open_issue_gnumach]] Running GNU Mach in VirtualBox crashes during initialization. IRC, freenode, #hurd, 2011-08-15 - HowTo Reproduce: 1) Use `reboot` to reboot the system. 2) Once you see the Grub menu, turn off the debian hurd box. 3) Let the box boot normally, and wait for the error/crash/reboot. 4) The error/crash will happen twice and it's reboot automatically. The 3rd boot will success. + HowTo Reproduce: 1) Use `reboot` to reboot the system. 2) Once + you see the Grub menu, turn off the debian hurd box. 3) Let the box boot + normally, and wait for the error/crash/reboot. 4) The error/crash will + happen twice and it's reboot automatically. The 3rd boot will success. root@dhurd:/boot# addr2line -f -e gnumach-1.3.99-486-dbg-copy 0x106c93 0x1556a5 0x152c54 copyoutmsg @@ -28,8 +29,8 @@ IRC, freenode, #hurd, 2011-08-15 i386/i386/locore.S:1289 is - movl $USER_DS,%eax /* use user data segment for accesses */ -=> mov %ax,%es + movl $USER_DS,%eax /* use user data segment for accesses */ + => mov %ax,%es State is @@ -66,14 +67,14 @@ IRC, freenode, #hurd, 2011-08-15 i386/i386/locore.S:527 is: -_return_from_kernel: -_kret_popl_gs: - popl %gs /* restore segment registers */ -_kret_popl_fs: - popl %fs -_kret_popl_es: -=> popl %es -_kret_popl_ds: + _return_from_kernel: + _kret_popl_gs: + popl %gs /* restore segment registers */ + _kret_popl_fs: + popl %fs + _kret_popl_es: + => popl %es + _kret_popl_ds: cs: 0x8 ds: 0x10 @@ -93,5 +94,6 @@ _kret_popl_ds: efl: 0x10216 looks again like a $USER_DS issue - what's interesting is that that one means that $USER_DS did load in %es fine at least once + what's interesting is that that one means that $USER_DS did load in + %es fine at least once and it's the reload that fails diff --git a/source_repositories.mdwn b/source_repositories.mdwn index df0242f0..5ac90b5e 100644 --- a/source_repositories.mdwn +++ b/source_repositories.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation, -Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011 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 @@ -22,14 +22,17 @@ This page is meant to give some guidelines. Please use good sense or ask on * hurd.git -- Hurd meta package; no real content yet * [[hurd/glibc.git|glibc]] -- [[/glibc]] maintenance - * hurd/gnumach.git -- [[GNU Mach|microkernel/mach/gnumach]] ([[building|microkernel/mach/gnumach/building]]) - * hurd/hurd.git -- [[/Hurd]] ([[building|hurd/building]]) + * hurd/gnumach.git -- [[GNU Mach|microkernel/mach/gnumach]] + ([[microkernel/mach/gnumach/building]]) + * hurd/hurd.git -- [[/Hurd]] ([[hurd/building]]) * [[hurd/incubator.git|incubator]] -- the great next stuff * hurd/libpthread.git -- [[POSIX threading library|libpthread]] - * hurd/mig.git -- [[microkernel/mach/MIG]] ([[building|microkernel/mach/mig/gnu_mig/building]]) + * hurd/mig.git -- [[microkernel/mach/MIG]] + ([[microkernel/mach/mig/gnu_mig/building]]) * hurd/procfs.git -- [[hurd/translator/procfs]] - * hurd/unionfs.git -- -- [[hurd/translator/unionfs]] - * hurd/viengoos.git -- [[microkernel/Viengoos]] ([[building|microkernel/viengoos/building]]) + * hurd/unionfs.git -- [[hurd/translator/unionfs]] + * hurd/viengoos.git -- [[microkernel/Viengoos]] + ([[microkernel/viengoos/building]]) * hurd/web.git -- [[contributing/Web_pages]] -- cgit v1.2.3 From 331da015205c6b18c0e0f9cbfd0d02a931ee5239 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 7 Sep 2011 19:19:48 +0200 Subject: fix urls --- microkernel/mach/gnumach/building.mdwn | 2 +- microkernel/mach/mig/gnu_mig/building.mdwn | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'microkernel/mach/mig') diff --git a/microkernel/mach/gnumach/building.mdwn b/microkernel/mach/gnumach/building.mdwn index afcfac74..427fb083 100644 --- a/microkernel/mach/gnumach/building.mdwn +++ b/microkernel/mach/gnumach/building.mdwn @@ -21,7 +21,7 @@ enabled) is around 50 MiB. You can either use the git repository (see ), - $ git clone git.savannah.gnu.org:/srv/git/hurd/gnumach.git + $ git clone http://git.savannah.gnu.org/cgit/hurd/gnumach.git/ ... or get the Debian sources, if you're using Debian. (See [here](http://packages.debian.net/source/unstable/gnumach).) diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn index cd588341..e7d3c150 100644 --- a/microkernel/mach/mig/gnu_mig/building.mdwn +++ b/microkernel/mach/mig/gnu_mig/building.mdwn @@ -19,7 +19,7 @@ using a pre-built package, follow these instructions. You can chose between getting the [sources from the developers' RCS](http://git.savannah.gnu.org/cgit/hurd/): - $ git clone git://git.savannah.gnu.org:/srv/git/hurd/mig.git + $ git clone http://git.savannah.gnu.org/cgit/hurd/mig.git/ ... or (if you are working on a Debian system) get the sources that are used for the [current Debian mig package](http://packages.debian.net/source/unstable/mig): -- cgit v1.2.3