Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 02 May 2013 14:46:49 +0200
From:      Dimitry Andric <dimitry@andric.com>
To:        Steven Hartland <killing@multiplay.co.uk>,  Alfred Perlstein <alfred@ixsystems.com>
Cc:        hackers@freebsd.org
Subject:   Re: potential future proofing fix for aicasm build.
Message-ID:  <51826039.1000108@andric.com>
In-Reply-To: <F94F1657F9A54669AF1BFEF5FF3F5169@multiplay.co.uk>
References:  <51814686.2060805@ixsystems.com> <E2096D39-2037-4741-8F5B-9887220D7ACA@andric.com> <E8C064535571436A82136F7750006649@multiplay.co.uk> <518235B9.6090104@andric.com> <9C51B77A3AC948B68BAAFB9FB86DE52F@multiplay.co.uk> <51823CBC.2060803@andric.com> <F94F1657F9A54669AF1BFEF5FF3F5169@multiplay.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2013-05-02 13:55, Steven Hartland wrote:
> From: "Dimitry Andric" <dimitry@andric.com>
>> On 2013-05-02 11:54, Steven Hartland wrote:
>>> From: "Dimitry Andric" <dimitry@andric.com>
...
>>> I think what I did was the following:-
>>> 1. make buildkernel KERNCONF=MYCONF -j10 # failed due to aicasm
>>
>> And this is what I cannot reproduce.  Works just fine, either with or without -j.
>
> Have just confirmed this reproduces the issue with a recent head source on 8.3-RELEASE
> machine.

Note this is the other way around; the original poster was talking about
building "an older 9.0 src on a machine running HEAD".


> 1. rm -rf /usr/obj
> 2. make buildkernel KERNCONF=MYCONF -j10 # Fails with:-
> cc1: warnings being treated as errors
> aicasm_gram.c:1539: warning: no previous prototype for 'yyparse'

Yes, this is because r243906 removed the prototype, since newer versions
of yacc generate the prototype for yyparse themselves.

Here, lex and yacc should really be (also) built as part of the kernel's
bootstrap tools.  Currently, they are only part of the bootstrap tools
for buildworld, which explains the events below.


> 3. make buildworld

So here the correct versions of lex and yacc are built...


> 4. make buildkernel KERNCONF=MYCONF -j10 # Still fails with:-
> cc1: warnings being treated as errors
> aicasm_gram.c:1539: warning: no previous prototype for 'yyparse'

However, since the .c file is newer than the .y file, it does not get
regenerated...


> Fix is:
> 1. rm -rf /usr/obj/usr/src/sys/MYCONF
> 2. make buildkernel KERNCONF=MYCONF -j10 # Now works

And with this, you have forced regeneration of the aicasm_gram.c file,
so now it builds correctly.

E.g., I think you might get away with just rm'ing all the generated
aicasm*.c files.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51826039.1000108>