summaryrefslogtreecommitdiff
path: root/hurd/porting/guidelines.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'hurd/porting/guidelines.mdwn')
-rw-r--r--hurd/porting/guidelines.mdwn28
1 files changed, 27 insertions, 1 deletions
diff --git a/hurd/porting/guidelines.mdwn b/hurd/porting/guidelines.mdwn
index c5dd4891..529a6130 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.
Not implemented, packages may be fixed for working around this: use void sighandler(int num) prototype and sa_handler field.
+## <a name="SA_NOCLDWAIT"> `SA_NOCLDWAIT` </a>
+
+Not implemented yet.
+
## <a name="SOL_IP"> `SOL_IP` </a>
Not implemented yet.