From owner-freebsd-ports@FreeBSD.ORG Thu Nov 24 18:31:40 2005 Return-Path: X-Original-To: freebsd-ports@freebsd.org Delivered-To: freebsd-ports@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 02F5316A41F for ; Thu, 24 Nov 2005 18:31:40 +0000 (GMT) (envelope-from schweikh@schweikhardt.net) Received: from bremen.shuttle.de (bremen.shuttle.de [194.95.249.251]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0FF2543DE7 for ; Thu, 24 Nov 2005 18:31:07 +0000 (GMT) (envelope-from schweikh@schweikhardt.net) Received: by bremen.shuttle.de (Postfix, from userid 10) id 4C5A03B93E; Thu, 24 Nov 2005 19:30:36 +0100 (CET) Received: from hal9000.schweikhardt.net (localhost [127.0.0.1]) by hal9000.schweikhardt.net (8.13.4/8.13.4) with ESMTP id jAOIQjf5002781; Thu, 24 Nov 2005 19:26:45 +0100 (CET) (envelope-from schweikh@hal9000.schweikhardt.net) Received: (from schweikh@localhost) by hal9000.schweikhardt.net (8.13.4/8.13.4/Submit) id jAOIQjcl002780; Thu, 24 Nov 2005 19:26:45 +0100 (CET) (envelope-from schweikh) Date: Thu, 24 Nov 2005 19:26:45 +0100 From: Jens Schweikhardt To: "Andrew P." Message-ID: <20051124182645.GA1923@schweikhardt.net> References: <200511210625.16973.ringworm01@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.11 Cc: tridge@samba.org, freebsd-ports@freebsd.org Subject: Re: FreeBSD ccache port is wonderfiul! X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Nov 2005 18:31:40 -0000 On Mon, Nov 21, 2005 at 07:25:15PM +0300, Andrew P. wrote: ... # Beware, ccache brings bad luck in quite a few cases. # Start using it for /usr/src and first effects will be visible # in a few weeks. This is almost certainly a pilot error. The problem is invariably one of not understanding how ccache finds the real compiler in conjunction with not knowing the internals of a 'make buildworld', especially when CC and CXX are set. (Note to Tridge: buildworld compiles a cc, installs a complete temporary build environment and uses that environment's compiler and headers from that point on. The interesting problem is how to make ccache find the same cc's. There are ways, but they're not entirely obvious). The effect of "It works for several days/weeks to build the world, but then suddenly breaks" is caused by using the /usr/bin/cc compiler in stages 4.1 and later, when instead /usr/obj/usr/src/tmp/usr/bin/cc must be used. This stage has headers that differ from the ones /usr/bin/cc finds in /usr/include. So whenever a macro is added to one of the headers and that macro used anywhere else the (pilot errored) build breaks from that moment on. # IMHO, ccache has still some way to # go in order into production. It is ready for production and has been for as long as I use it (1yr). Please see the thread "Using ccache for build{world, kernel}" on the current@ mailing list (only two weeks ago). Regards, Jens -- Jens Schweikhardt http://www.schweikhardt.net/ SIGSIG -- signature too long (core dumped)