Clang now builds world and kernel, on i386 and amd64

Rene Ladan rene at freebsd.org
Wed Sep 22 21:11:53 UTC 2010


On 22-09-2010 18:45, Bartosz Stec wrote:
>  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
> 
Hmm, works for me:
acer# ls -l /boot/kernel/if_stge.ko*
-r-xr-xr-x  1 root  wheel   39344 Sep 22 13:34 /boot/kernel/if_stge.ko
-r-xr-xr-x  1 root  wheel  218248 Sep 22 13:34
/boot/kernel/if_stge.ko.symbols
acer#

This is with the default GENERIC kernel.

Rene
-- 
http://www.rene-ladan.nl/

GPG fingerprint = ADBC ECCD EB5F A6B4 549F  600D 8C9E 647A E564 2BFC
(subkeys.pgp.net)


More information about the freebsd-current mailing list