ccache pausing in buildworld

Emanuel Haupt ehaupt at FreeBSD.org
Mon Nov 8 18:42:25 UTC 2010


Dimitry Andric <dim at FreeBSD.org> 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.

You must have misunderstood the issue. This thread is entirely about
ccache. I'm having no problems building w/o ccache.

Emanuel


More information about the freebsd-hackers mailing list