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[5] 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.
CCing dim@
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.