Subject: Re: Boostrap error on OpenBSD 3.4 based system
To: None <pkgsrc-bugs@netbsd.org>
From: Christos Zoulas <christos@zoulas.com>
List: pkgsrc-bugs
Date: 02/13/2004 21:32:12
In article <20040213180719.GB88941@rfc-networks.ie>,
Philip Reynolds <philip.reynolds@rfc-networks.ie> wrote:
>-=-=-=-=-=-
>-=-=-=-=-=-
>
>A tiny tiny patch for pkgsrc to build on openbsd 3.4 based systems
>(the main problem is with the newer version of gcc afaics)
>
>	gcc version 2.95.3 20010125 (prerelease, propolice)
>
>FYI, the error was as follows:
>
>	cc1: warnings being treated as errors
>	job.c: In function `JobFinish':
>	job.c:975: warning: `and' of mutually exclusive equal-tests is
>	always 0
>	
>
>Compiling with NOGCCERROR=yes is a simple workaround.
>
>Regards,
>-- 
>Philip Reynolds                      | RFC Networks Ltd.
>philip.reynolds@rfc-networks.ie      | +353 (0)1 8832063
>http://people.rfc-networks.ie/~phil/ | www.rfc-networks.ie
>
>-=-=-=-=-=-
>
>--- bmake/job.c.orig	Fri Feb 13 17:46:54 2004
>+++ bmake/job.c	Fri Feb 13 17:46:58 2004
>@@ -972,7 +972,7 @@
> #endif
> 	    (void) fflush(out);
> 	    return;
>-	} else if (WIFSTOPPED(status) &&  WTERMSIG(status) == SIGCONT) {
>+	} else if ((WIFSTOPPED(status)) &&  WTERMSIG(status) == SIGCONT) {
> 	    /*
> 	     * If the beastie has continued, shift the Job from the stopped
> 	     * list to the running one (or re-stop it if concurrency is

This code is wrong. the original make source has:

	} else if (WIFSTOPPED(*status) &&  WSTOPSIG(*status) == SIGCONT) {

The compiler has every right to bitch because the two conditions
can never be true at the same time.

christos