From owner-freebsd-arch@FreeBSD.ORG Mon May 28 19:56:02 2012 Return-Path: Delivered-To: arch@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4C4111065674; Mon, 28 May 2012 19:56:02 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net [IPv6:2001:7b8:2ff:146::2]) by mx1.freebsd.org (Postfix) with ESMTP id 095118FC0C; Mon, 28 May 2012 19:55:58 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7:0:4c1c:92fb:538c:83ed] (unknown [IPv6:2001:7b8:3a7:0:4c1c:92fb:538c:83ed]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 2E7C65C59; Mon, 28 May 2012 21:55:58 +0200 (CEST) Message-ID: <4FC3D84B.2060302@FreeBSD.org> Date: Mon, 28 May 2012 21:55:55 +0200 From: Dimitry Andric Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20120522 Thunderbird/13.0 MIME-Version: 1.0 To: Baptiste Daroussin References: <20120526235510.GB90668@ithaqua.etoilebsd.net> In-Reply-To: <20120526235510.GB90668@ithaqua.etoilebsd.net> X-Enigmail-Version: 1.5a1pre Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: arch@FreeBSD.org Subject: Re: switch tounconditionnal boostrapping while to build the tree X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 May 2012 19:56:02 -0000 On 2012-05-27 01:55, Baptiste Daroussin wrote: > After I replace yacc(1) by byacc(1) on current, we discovered than now it is > impossible to build 9 on current, because byacc(1) is not 100% backward > compatible with our yacc(1). this is because building a boostrap yacc(1) is > conditionned on the version of the host that is building world. > > Looking at Makefile.inc1 I can see that lots of tools are conditionned like > this. I think if we want to go to be able to cross build the tree (I remember > from EuroBSDcon that this is something we want to do) then we need to remove the > conditions and always boostrap any tool necessary to be able to build the tree. > > so if no one care I'll remove the condition to boostrap at least yacc(1) and > lex(1) on current, 9, 8 and 7. > > Would be great imho to do the same for any tools needed by the build system. It could prevent a lot of subtle (and not to subtle :) problems, but it will also waste a lot of CPU time and energy building stuff that isn't strictly needed. (I'm saying this with tongue in cheek, since I'm responsible for a lot of CPU wastage, a.k.a. clang... ;) E.g., the bootstrapping version check mechanism which is now in place, is really a build time optimization, comparable to running builds with NO_CLEAN: you can shoot yourself in the foot, it's dirty, but it works most of the time, and it is *much* faster. I really would not want to throw all that away. But as a compromise, you could add an option to do "brute force bootstrapping", which ignores all version checking, and just builds all required bootstrap tools. The question is also what your end goal is: do you want to reach a NetBSD style approach (basically bootstrap *everything*), or just make the current implementation more robust?