From owner-freebsd-hackers@FreeBSD.ORG Mon Nov 8 18:14:11 2010 Return-Path: Delivered-To: hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CDCB11065672 for ; Mon, 8 Nov 2010 18:14:11 +0000 (UTC) (envelope-from shuvaev@physik.uni-wuerzburg.de) Received: from mailrelay.rz.uni-wuerzburg.de (mailrelay.rz.uni-wuerzburg.de [132.187.3.28]) by mx1.freebsd.org (Postfix) with ESMTP id 776F68FC13 for ; Mon, 8 Nov 2010 18:14:11 +0000 (UTC) Received: from virusscan.mail (localhost [127.0.0.1]) by mailrelay.mail (Postfix) with ESMTP id 8CBA85AC17; Mon, 8 Nov 2010 19:13:36 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by virusscan.mail (Postfix) with ESMTP id 8A4FC5ABF7; Mon, 8 Nov 2010 19:13:36 +0100 (CET) X-Virus-Scanned: by amavisd-new at uni-wuerzburg.de Received: from mail.physik.uni-wuerzburg.de (wthp192.physik.uni-wuerzburg.de [132.187.40.192]) by mailmaster.uni-wuerzburg.de (Postfix) with ESMTP id 6971D5CC54; Mon, 8 Nov 2010 19:13:36 +0100 (CET) Received: from wep4035.physik.uni-wuerzburg.de ([132.187.37.35]) by mail.physik.uni-wuerzburg.de (Lotus Domino Release 8.5.2HF105) with ESMTP id 2010110819133547-83397 ; Mon, 8 Nov 2010 19:13:35 +0100 Date: Mon, 8 Nov 2010 19:13:34 +0100 From: Alexey Shuvaev To: Dimitry Andric Message-ID: <20101108181334.GA20814@wep4035.physik.uni-wuerzburg.de> References: <20101108144811.4a737a7a.ehaupt@FreeBSD.org> <20101108153434.GC17517@wep4035.physik.uni-wuerzburg.de> <4CD83AF3.9090507@FreeBSD.org> MIME-Version: 1.0 In-Reply-To: <4CD83AF3.9090507@FreeBSD.org> Organization: Universitaet Wuerzburg User-Agent: Mutt/1.5.21 (2010-09-15) X-MIMETrack: Itemize by SMTP Server on domino1/uni-wuerzburg(Release 8.5.2HF105 | October 15, 2010) at 11/08/2010 07:13:35 PM, Serialize by Router on domino1/uni-wuerzburg(Release 8.5.2HF105 | October 15, 2010) at 11/08/2010 07:13:35 PM, Serialize complete at 11/08/2010 07:13:35 PM Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Cc: hackers@FreeBSD.org Subject: Re: ccache pausing in buildworld X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Nov 2010 18:14:11 -0000 On Mon, Nov 08, 2010 at 07:01:23PM +0100, Dimitry Andric wrote: > On 2010-11-08 16:34, Alexey Shuvaev wrote: > >Just FYI, you would see exact the same problem if you try to compile > >i386 world on amd64-CURRENT with clang: > >... > >/src/lib/csu/i386-elf/crt1_s.S: Assembler messages: > >/src/lib/csu/i386-elf/crt1_s.S:34: Error: suffix or operands invalid for `push' > >/src/lib/csu/i386-elf/crt1_s.S:37: Error: `8(%ebp)' is not a valid 64 bit base/index expression > >/src/lib/csu/i386-elf/crt1_s.S:38: Error: suffix or operands invalid for `push' > >/src/lib/csu/i386-elf/crt1_s.S:39: Error: `4(%ebp)' is not a valid 64 bit base/index expression > >/src/lib/csu/i386-elf/crt1_s.S:40: Error: suffix or operands invalid for `push' > >clang: error: assembler command failed with exit code 1 (use -v to see invocation) > >*** Error code 1 > >... > > > >As far as I understand this, there is no clang cross-compiler support > >at the moment. So compiler generates (somehow) i386 assembler code > >which amd64 assembler does not like. Looks like something similar happens > >here too... > > Have you read http://wiki.freebsd.org/BuildingFreeBSDWithClang, which > suggests to put: > > .if !defined(CC) || ${CC} == "cc" > CC=clang > .endif > .if !defined(CXX) || ${CXX} == "c++" > CXX=clang++ > .endif > # Don't die on warnings > NO_WERROR= > WERROR= > > in your /etc/src.conf (or make.conf, depending on your preference)? > > If you use that, it should work, at least for the build32 stage of > buildworld on amd64. This workaround is only needed on amd64, not for > i386. > Certainly, I have all these in the host machine and native buildworld works as expected. What I was talking about is cross-compiling, i.e.: make TARGET=i386 buildworld on amd64 host. BTW, the absence of clang testers on arm architecture would not change unless the cross-compiling issue with clang is resolved. Cross-compilation is a MUST HAVE here (there is no other way to bootstrap the platform). Alexey.