ccache pausing in buildworld
Dimitry Andric
dim at FreeBSD.org
Mon Nov 8 18:01:20 UTC 2010
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.
More information about the freebsd-hackers
mailing list