Date: Tue, 4 Mar 2008 17:37:30 +0200 From: Giorgos Keramidas <keramida@ceid.upatras.gr> To: Robert Watson <rwatson@freebsd.org> Cc: hackers@freebsd.org Subject: Re: Comments on pmake diffs for building on Linux Message-ID: <20080304153730.GA61036@kobe.laptop> In-Reply-To: <20080304151326.J41184@fledge.watson.org> References: <20080303.224256.635730757.imp@bsdimp.com> <20080304151326.J41184@fledge.watson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2008-03-04 15:15, Robert Watson <rwatson@freebsd.org> wrote: > On Mon, 3 Mar 2008, M. Warner Losh wrote: >> --- pmake.orig/config.h 2005-02-01 03:50:35.000000000 -0700 >> +++ pmake/config.h 2008-03-03 22:24:16.745493000 -0700 >> @@ -108,4 +108,27 @@ >> # endif >> #endif >> >> +#ifndef TAILQ_HEAD_INITIALIZER >> +#define TAILQ_HEAD_INITIALIZER(head) { NULL, &(head).tqh_first } >> +#endif > > In most ports of FreeBSD parts to Linux that I've seen, the preferred > solution has to been to bring the entire FreeBSD queue.h with you rather > than relying on the native Linux queue.h. This is what we do for OpenBSM, > for example; this also helps out when you get to Mac OS X, Solaris, etc, > where all the queue.h's continue to vary in subtle ways. This depends a > fair amount on a lack of header pollution in the OS's own include files, of > course... Fortunately, in Solaris where I am testing the import of sys/cdefs.h and sys/queue.h today, things seem to be `ok'. Just importing the two headers at http://hg.hellug.gr/bmake/gker/rev/68bfc25ed443 seems to have moved things one step closer towards building everything on Solaris: Now off to the next little annoyance. Building with Sun Studio on Solaris 10, in my test machine at home, stops at: "arch.c", line 1063: undefined symbol: INT_MIN cc: acomp failed for arch.c *** Error code 2 make: Fatal error: Command failed for target `arch.o' Current working directory /home/keramida/bmake/src This is easy to fix with: diff -r 68bfc25ed443 src/arch.c --- a/src/arch.c Tue Mar 04 17:29:11 2008 +0200 +++ b/src/arch.c Tue Mar 04 17:35:08 2008 +0200 @@ -96,6 +96,7 @@ #include <ctype.h> #include <errno.h> #include <inttypes.h> +#include <limits.h> #include <regex.h> #include <stdlib.h> #include <stdio.h> The next part, about the missing errx() functions on Solaris is going to be tonight's fun. If there are too many missing functions, it may be worth adding a static `libcompat' with copies of just the functions we need to run BSD make on non-BSD hosts.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080304153730.GA61036>