From owner-freebsd-hackers@FreeBSD.ORG Mon Nov 8 18:01:20 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 077A7106564A; Mon, 8 Nov 2010 18:01:20 +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 B3E428FC12; Mon, 8 Nov 2010 18:01:19 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7:0:a408:958e:5aa:3734] (unknown [IPv6:2001:7b8:3a7:0:a408:958e:5aa:3734]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id C2BB85C43; Mon, 8 Nov 2010 19:01:18 +0100 (CET) Message-ID: <4CD83AF3.9090507@FreeBSD.org> Date: Mon, 08 Nov 2010 19:01:23 +0100 From: Dimitry Andric Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.2.13pre) Gecko/20101104 Lanikai/3.1.7pre MIME-Version: 1.0 To: Alexey Shuvaev References: <20101108144811.4a737a7a.ehaupt@FreeBSD.org> <20101108153434.GC17517@wep4035.physik.uni-wuerzburg.de> In-Reply-To: <20101108153434.GC17517@wep4035.physik.uni-wuerzburg.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: hackers@FreeBSD.org, Emanuel Haupt 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:01:20 -0000 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.