Clang now builds world and kernel, on i386 and amd64

Bartosz Stec admin at kkip.pl
Wed Sep 22 16:48:02 UTC 2010


  On 2010-09-22 12:42, René Ladan wrote:
> 2010/9/22 Dimitry Andric<dim at freebsd.org>:
>> Hi,
>>
>> As of r212979, you should now be able to build world and kernel on i386
>> and amd64 with clang, without any additional patches!
>>
>> To do so, make sure you have updated your installed world to at least
>> r212904 (which has the most recently imported clang/llvm snapshot), and
>> put the following in /etc/src.conf:
>>
>> .if !defined(CC) || ${CC} == "cc"
>> CC=clang
>> .endif
>> .if !defined(CXX) || ${CXX} == "c++"
>> CXX=clang++
>> .endif
>> # Don't die on warnings
>> NO_WERROR=
>> WERROR=
>>
>
Just tried it. World has been builded without any problems, but stge 
kernel module failed to compile:

===> stge (all)
clang -O2 -pipe -march=athlon-xp -fno-strict-aliasing -D_KERNEL 
-DKLD_MODULE -nostdinc   -DHAVE_KERNEL_OPTION_HEADERS -include 
/usr/obj/usr/src/sys/ATHLON9/opt_global.h -I. -I@ -I@/contrib/altq 
-fno-common  -I/usr/obj/usr/src/sys/ATHLON9  -mno-mmx -mno-3dnow 
-mno-sse -mno-sse2 -mno-sse3 -ffreestanding -fstack-protector 
-std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls 
-Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes 
-Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign 
-fformat-extensions -c /usr/src/sys/modules/stge/../../dev/stge/if_stge.c
/usr/src/sys/modules/stge/../../dev/stge/if_stge.c:1947:5: error: 
'break' statement not in loop or switch statement
                                 break;
                                 ^
/usr/src/sys/modules/stge/../../dev/stge/if_stge.c:1953:6: error: 
'break' statement not in loop or switch statement
                                         break

-- 
Bartosz Stec


More information about the freebsd-current mailing list