My computer has the "haswell" processor (a version of Intel i7), the clang version that ships with FreeBSD has no knowledge of my processor, only the "generic" i7, so I installed the clang/llvm 3.8, as it has knowledge of my processor.
Trying to compile the source code installed with Freebsd 10.2 CD (src.txz, make buildworld), using the clang 8.0 (and option -march=haswell) resulted in a lot of "warnings as errors", switched back to 3.4.1 (and option -march=corei7) and all done.
So there is new "checks" made by the 3.8 compiler that isn't compatible with some included sources in the /usr/src.
Some I tryed to "repair": openpam, libz (zip lib), "jail lib", then I stopped.
The problem is the option to treat warnings as errors, for example, in jail lib clang 3.4.1 accepts to assign a string of char (char like "aaaa") to *(const **)&, but 3.8 refuses.
Building 10.2 with Clang 3.8 isn't supported, but perhaps you can compile with NO_WERROR?
(In reply to Ed Maste from comment #1)
Hello, adding -DNO_WERROR option to make is ok, but then it stops at /usr/src/sys/boot/i386/boot2
The error is:
===> sys/boot/i386/boot2 (all)
--- boot2 ---
-265 bytes available
*** [boot2] Error code 1
If I compile with the default clang version that comes with Freebsd 10 (3.4.1), even if I modify the CFLAGS/CXXFLAGS (-O3 -march=corei7 -fomit-frame-pointer), all goes well, but if I try to compile with clang 3.6 (/usr/ports/lang/clang36), clang 3.7 and clang 3.8 (clang-devel), then this error appears, with variable "-[X] bytes available" error message.
Without any further information, I'm guessing that your bsd.compiler.mk does not detect the compiler version properly, and that incorrect flags are being used to compile boot2. (The whole sys/boot area is very sensitive to the exact optimization flags, it will almost always grow too large if they aren't correct.)
Can you provide a log of the commands being used to compile everything under /usr/src/sys/boot? For example, by running "make clean" in there, and then running make as usual, but redirected to a log file.
I'm also interested in the COMPILER_TYPE and COMPILER_VERSION detected by your version of the build system. E.g. in /usr/src, run:
make -V COMPILER_TYPE -V COMPILER_VERSION
and paste the output here.
Having said all that, I think you will run into multiple problems that will be pretty tricky to solve, if you continue this way. 10.2-RELEASE is completely frozen, and misses a lot of important fixes and updates which are in 10-STABLE, making the task even more difficult.
Therefore, I think it is wisest to abandon this attempt. You will most likely not gain any significant performance advantage by compiling with -march=haswell, as opposed to e.g. -march=corei7.