summaryrefslogtreecommitdiff
path: root/hurd/porting
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2011-08-31 02:48:12 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2011-08-31 02:48:12 +0200
commitd51486bfb7e8367078774906d4a71723908d544f (patch)
treee893a4e012d1c7ea37d14aebc77d515623e567bc /hurd/porting
parent6d6f91a73dec99ba2a71a7e4fe3b17fb95d05814 (diff)
parent0149900126f7cc33c8a347f73a3c2148b8f2fbb8 (diff)
Merge branch 'master' of flubber:~hurd-web/hurd-web
Diffstat (limited to 'hurd/porting')
-rw-r--r--hurd/porting/guidelines.mdwn28
-rw-r--r--hurd/porting/system_api_limitations.mdwn2
2 files changed, 28 insertions, 2 deletions
diff --git a/hurd/porting/guidelines.mdwn b/hurd/porting/guidelines.mdwn
index c6ed62ed..e3da1e42 100644
--- a/hurd/porting/guidelines.mdwn
+++ b/hurd/porting/guidelines.mdwn
@@ -22,8 +22,30 @@ There is a separate page about [[System_API_Limitations]].
You may ask on the [[mailing lists/bug-hurd]] mailing list for details or
questions about fixing bugs.
+## <a name="GNU build system"> GNU build system </a>
-## <a name="autoconf"> Fixing configure.ac/in </a>
+For a good overview of the components in the GNU build system, see
+<http://en.wikipedia.org/wiki/GNU_build_system> and
+<http://www.gnu.org/s/hello/manual/autoconf/index.html>.
+
+The GNU build system distinguishes between 'build', 'host' and 'target' machines.
+The 'build' machine is where compilers are run, the 'host' machine where the package
+being built will run, and for cross compiling the 'target' machine, on which the compiler
+built will generate code for.
+
+When using GNU autotools to configure a package config.guess and config.sub from autotools-dev
+are used to find out the build machine identity: CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM.
+For GNU/Hurd config.guess gives 'i686-unknown-gnu0.3'. Sometimes a quadruple is used
+adding KERNEL, e.g. for Linux on an amd64: 'x86_64-unknown-linux-gnu'. config.sub is used to
+canonicalize on these triplets, e.g. config.sub i686-gnu gives 'i686-pc-gnu'.
+
+On Debian systems the build Makefile is debian/rules and some Debian packages will set $host to
+'i486-pc-gnu'. This is accomplished with the 'dpkg-architecture -qDEB_HOST_GNU_TYPE' construct
+forwarded to configure in debian/rules, e.g. configure --host=$DEB_HOST_GNU_TYPE.
+Another way to set $build, $host etc is via the Debian dh_auto_configure script from the debhelper
+package which uses the Perl code autoconf.pm to find out these variables.
+
+## <a name="autoconf"> Fixing configure.{ac,in} </a>
The GNU/Hurd (and GNU/kFreeBSD) toolchain is extremely close to the GNU/Linux toolchain.
configure.ac thus very often just needs to be fixed by using the same cases as Linux, that is, turn
@@ -230,6 +252,10 @@ then be found.
Implemented by Jeremie Koenig, pending upload in Debian eglibc 2.13-19.
+## <a name="SA_NOCLDWAIT"> `SA_NOCLDWAIT` </a>
+
+Not implemented yet.
+
## <a name="SOL_IP"> `SOL_IP` </a>
Not implemented yet.
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