Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 08 Nov 2010 19:01:23 +0100
From:      Dimitry Andric <dim@FreeBSD.org>
To:        Alexey Shuvaev <shuvaev@physik.uni-wuerzburg.de>
Cc:        hackers@FreeBSD.org, Emanuel Haupt <ehaupt@FreeBSD.org>
Subject:   Re: ccache pausing in buildworld
Message-ID:  <4CD83AF3.9090507@FreeBSD.org>
In-Reply-To: <20101108153434.GC17517@wep4035.physik.uni-wuerzburg.de>
References:  <alpine.BSF.2.00.1010311019150.9437@wonkity.com>	<20101108144811.4a737a7a.ehaupt@FreeBSD.org> <20101108153434.GC17517@wep4035.physik.uni-wuerzburg.de>

next in thread | previous in thread | raw e-mail | index | archive | help
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.



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