CLANG; still cc in use when building the WORLD with CLANG?

Hartmann, O. ohartman at zedat.fu-berlin.de
Tue Aug 30 09:48:28 UTC 2011


   Hello.
   I'm building world with CLANG  (or I pretend to do so).
   In my /etc/make.conf I use these lines:
   ###
   ###     CLANG
   ###
   .if defined(USE_CLANG)
   .if !empty(.CURDIR:M/usr/src*)
   CFLAGS= -O3 -march=native -mtune=native -fno-strict-aliasing -pipe
   COPTFLAGS= -O3 -march=native -mtune=native -pipe
   .if !defined(CC) || ${CC} == "cc"
   CC=clang
   .endif
   .if !defined(CXX) || ${CXX} == "c++"
   CXX=clang++
   .endif
   # Don't die on warnings
   NO_WERROR=
   WERROR=
   # Don't forget this when using Jails!
   NO_FSCHG=
   .endif
   .endif
   Somewhere at the top of the file I set USE_CLANG=yes
   Watching the build process of the kernel reveals that the system's
   build process still involves the cc when building some portions of the
   UFS, VFS and so on.
   As shown below, several essential portions of the kernel aren't built
   by clang, that includes VFS, NFS, UFS et cetera.
   Am I doing wrong? Or is this no accident and still wanted since
   FreeBSD doesn't build completely with CLANG? As far as I understood,
   the kernel and core system should be ready to be build with clang as a
   whole ...
   [...] right at the beginning of the build process ...
   cc -O2 -pipe -mtune=native -fno-strict-aliasing -march=native -std=c99
   -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes
   -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef
   -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs
   -fdiagnostics-show-option -nostdinc -I. -I/usr/src/sys
   -I/usr/src/sys/contrib/altq -I/usr/src/sys/contrib/ipfilter
   -I/usr/src/sys/contrib/pf -I/usr/src/sys/dev/ath
   -I/usr/src/sys/dev/ath/ath_hal -I/usr/src/sys/contrib/ngatm
   -I/usr/src/sys/dev/twa -I/usr/src/sys/gnu/fs/xfs/FreeBSD
   -I/usr/src/sys/gnu/fs/xfs/FreeBSD/support -I/usr/src/sys/gnu/fs/xfs
   -I/usr/src/sys/dev/cxgb -I/usr/src/sys/dev/cxgbe -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -finline-limit=8000
   --param inline-unit-growth=100 --param large-function-growth=1000
   -fno-omit-frame-pointer -mno-sse -mcmodel=kernel -mno-red-zone
   -mno-mmx -msoft-float -fno-asynchronous-unwind-tables -ffreestanding
   -fstack-protector -c /usr/src/sys/compat/ia32/ia32_genassym.c
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes
   -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef
   -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs
   -fdiagnostics-show-option -nostdinc -I. -I/usr/src/sys
   -I/usr/src/sys/contrib/altq -I/usr/src/sys/contrib/ipfilter
   -I/usr/src/sys/contrib/pf -I/usr/src/sys/dev/ath
   -I/usr/src/sys/dev/ath/ath_hal -I/usr/src/sys/contrib/ngatm
   -I/usr/src/sys/dev/twa -I/usr/src/sys/gnu/fs/xfs/FreeBSD
   -I/usr/src/sys/gnu/fs/xfs/FreeBSD/support -I/usr/src/sys/gnu/fs/xfs
   -I/usr/src/sys/dev/cxgb -I/usr/src/sys/dev/cxgbe -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -finline-limit=8000
   --param inline-unit-growth=100 --param large-function-growth=1000
   -fno-omit-frame-pointer -mno-sse -mcmodel=kernel -mno-red-zone
   -mno-mmx -msoft-float -fno-asynchronous-unwind-tables -ffreestanding
   -fstack-protector /usr/src/sys/amd64/amd64/genassym.c
   awk -f /usr/src/sys/tools/vnode_if.awk /usr/src/sys/kern/vnode_if.src
   -h
   rpcgen -c /usr/src/sys/kgssapi/gssd.x -o gssd_xdr.c
   rpcgen -lM /usr/src/sys/kgssapi/gssd.x | grep -v string.h >
   gssd_clnt.c
   env NM='nm' sh /usr/src/sys/kern/genassym.sh ia32_genassym.o >
   ia32_assym.h
   NM='nm' sh /usr/src/sys/kern/genassym.sh genassym.o > assym.s
   cc -c -x assembler-with-cpp -DLOCORE -O2 -pipe -mtune=native
   -fno-strict-aliasing -march=native -std=c99  -Wall -Wredundant-decls
   -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes
   -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign
   -fformat-extensions  -Wmissing-include-dirs -fdiagnostics-show-option
   -nostdinc  -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq
   -I/usr/src/sys/contrib/ipfilter -I/usr/src/sys/contrib/pf
   -I/usr/src/sys/dev/ath -I/usr/src/sys/dev/ath/ath_hal
   -I/usr/src/sys/contrib/ngatm -I/usr/src/sys/dev/twa
   -I/usr/src/sys/gnu/fs/xfs/FreeBSD
   -I/usr/src/sys/gnu/fs/xfs/FreeBSD/support -I/usr/src/sys/gnu/fs/xfs
   -I/usr/src/sys/dev/cxgb -I/usr/src/sys/dev/cxgbe -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror /usr/src/sys/amd64/acpica/acpi_wakecode.S
   objcopy -S -O binary acpi_wakecode.o acpi_wakecode.bin
   nm -n --defined-only acpi_wakecode.o | while read offset dummy what;
   do echo "#define   ${what} 0x${offset}"; done > acpi_wakedata.h
   file2c -sx 'static char wakecode[] = {' '};' < acpi_wakecode.bin >
   acpi_wakecode.h
   rm -f .newdep
   and then somewhere in the middle ...
   [...]
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/contrib/dev/acpica/namespace/nsnames.c
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/contrib/dev/acpica/namespace/nsobject.c
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/contrib/dev/acpica/namespace/nsparse.c
   [...]
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/kern/syscalls.c
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/kern/sysv_ipc.c
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/kern/sysv_msg.c
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/kern/sysv_sem.c
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/kern/sysv_shm.c
   [...]
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/vm/uma_dbg.c
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/vm/vm_glue.c
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/vm/vm_init.c
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/vm/vm_kern.c
   [...]
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/dev/usb/usb_error.c
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/dev/usb/usb_generic.c
   [...]
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/fs/nfsclient/nfs_clvfsops.c
   cc -c -O2 -pipe -mtune=native -fno-strict-aliasing -march=native
   -std=c99  -Wall -Wredundant-decls -Wnested-externs
   -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline
   -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions
   -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc  -I.
   -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL
   -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common
   -finline-limit=8000 --param inline-unit-growth=100 --param
   large-function-growth=1000  -fno-omit-frame-pointer -mno-sse
   -mcmodel=kernel -mno-red-zone -mno-mmx -msoft-float
   -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
   -Werror  /usr/src/sys/fs/nfsclient/nfs_clport.c
    [...]


More information about the freebsd-current mailing list