Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Dec 2012 12:53:30 +0100
From:      Mark van Dijk <lists@internecto.net>
To:        freebsd-stable@freebsd.org
Subject:   FreeBSD 9 (amd64) buildworld stage 4.2 fails with clang: unknown target cpu i686
Message-ID:  <50DED9BA.1000400@internecto.net>

next in thread | raw e-mail | index | archive | help
Hello everyone,

I'm running FreeBSD 9.1-PRERELEASE and today I synchronised my /usr/src
directory with the svn_stable_9 branch on gitorious [1]. I am using ccache.

My /etc/make.conf contains the following:

-------------------------8<-------------------------
CPUTYPE?=native
CFLAGS=-O3 -pipe
COPTFLAGS=-O -fno-strict-aliasing -pipe
MAKE_JOBS_NUMBER=4
CC=clang
CXX=clang++
CPP=clang-cpp
NO_WERROR=
WERROR=
MAKE_SHELL?=sh
INSTALL=install -C
# from ccache-howto-freebsd.txt
.if (!empty(.CURDIR:M/usr/src*) || !empty(.CURDIR:M/usr/obj*))
.if !defined(NOCCACHE)
CC:=${CC:C,^clang,/usr/local/libexec/ccache/world/clang,1}
CXX:=${CXX:C,^clang\+\+,/usr/local/libexec/ccache/world/clang++,1}
CCACHE_DIR:=/usr/sysccache
.endif
.endif
.if ${CC:T} == "clang"
CFLAGS+=        -Qunused-arguments
.endif
-------------------------8<-------------------------

The output from make is too long to post inline so you can find the
relevant portion here:
http://sprunge.us/BfWJ

I suspect that the error is caused by -march=native, my CPU is an Intel
Core i5.

I'll admit that I did modify my make.conf right before building. It
already *did* contain the CC/CXX/CPP lines for clang but the ccache
portion was slightly different. It used to contain the literal contents
of ccache-howto-freebsd.txt:

CC:=${CC:C,^cc,/usr/local/libexec/ccache/world/cc,1}
CXX:=${CXX:C,^c\+\+,/usr/local/libexec/ccache/world/c++,1}

Today I re-read that howto and it states:
"You can replace cc and c++ with the compilers of your choice.
(remember that only GCC and Clang can build world and kernel)"

So I updated those two lines and replaced cc/c++ with clang/clang++. I
didn't get the make errors before. So I moved those two lines back, did
rm -rf /usr/obj/* and started another make buildworld which is still
running.

I always thought that specifying 'CPUTYPE?=' in the Makefile is the
right way to prevent issues like this. So did I do something wrong, or
is this some kind of ccache issue, or is this a legitimate bug?

Please shed some light on this, thanks.

Mark van Dijk
the Netherlands

[1] git://gitorious.org/freebsd/freebsd.git




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50DED9BA.1000400>