From 0149900126f7cc33c8a347f73a3c2148b8f2fbb8 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmOlZj6Ku6rQ8E1D1Wl2ExOtSuLcJNVfyY" Date: Tue, 30 Aug 2011 18:25:01 +0200 Subject: Added stuff on GNU build system (and mentioned SA_NOCLDWAIT) --- hurd/porting/guidelines.mdwn | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'hurd/porting') 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. +## GNU build system -## Fixing configure.ac/in +For a good overview of the components in the GNU build system, see + and +. + +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. + +## Fixing configure.{ac,in} 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. +## `SA_NOCLDWAIT` + +Not implemented yet. + ## `SOL_IP` Not implemented yet. -- cgit v1.2.3