Building world with clang ToT

Edward Meewis ed at extraordinarymachine.nl
Thu Sep 13 09:28:11 UTC 2012


Hi Brook,

On 12-09-12 18:34, Brooks Davis wrote:
> <snip>
> Note that some people have been working on external toolchain support.
>
> This would aim to make it possible to do what you were trying, e.g.
> building world using WITHOUT_TOOLCHAIN, which sets both WITHOUT_CLANG
> and WITHOUT_GCC, among others.
>
> However, I am not sure how far these efforts have come by now. :-)
> I've got some patches that aren't quite ready for prime-time that
> allow me to cross build world with an external CLANG.  I'll post them to
> the toolchain@ list when they are closer to ready (hopefully quite soon).
>
> -- Brooks
I'd be interested in those, even if there are some rough edges. (I don't 
mind sub-prime, this time ;)

FWIW: The clang build finished too, but with two hick-ups:
1. - kdump: build reports 4 errors:

===> usr.bin/kdump (depend)
sh /usr/home/emeewis/contrib/FreeBSD-HEAD/usr.bin/kdump/mksubr 
/usr/obj/usr/home/emeewis/contrib/FreeBSD-HEAD/tmp/usr/include >kdump_subr.c
env MACHINE=amd64 CPP="cpp"  sh 
/usr/home/emeewis/contrib/FreeBSD-HEAD/usr.bin/kdump/mkioctls print 
/usr/obj/usr/home/emeewis/contrib/FreeBSD-HEAD/tmp/usr/include > ioctl.c
<stdin>:8:31: error: cam/scsi/scsi_enc.h: No such file or directory
<stdin>:17:33: error: dev/filemon/filemon.h: No such file or directory
<stdin>:35:33: error: fs/nandfs/nandfs_fs.h: No such file or directory
<stdin>:46:24: error: net/netmap.h: No such file or directory

(As a consequence ?) clang doesn't pick up 2 symbols: MFI_CMD32 and 
MFIIO_PASSTHRU32 which are defined if COMPAT_FREEBSD32 is set in 
sys/dev/mfi/mfi_ioctl.h

2. lint calls tmp/usr/cc directly:

buildworld-clang.log:===> usr.bin/xlint/llib (all)
buildworld-clang.log:lint -cghapbx -Cposix 
/usr/home/emeewis/contrib/FreeBSD-HEAD/usr.bin/xlint/llib/llib-lposix
buildworld-clang.log:lint: cannot exec 
/usr/obj/usr/home/emeewis/contrib/FreeBSD-HEAD/tmp/usr/bin/cc: No such 
file or directory
buildworld-clang.log:Stop in 
/usr/home/emeewis/contrib/FreeBSD-HEAD/usr.bin/xlint/llib.

A link from cc to clang in the same directory fixes that.

Regards, Ed.

ps: re. 1: the gcc build calls:

===> usr.bin/kdump (depend)
/bin/sh 
/usr/home/emeewis/contrib/FreeBSD-HEAD/usr.bin/kdump/../../sys/kern/makesyscalls.sh 
/usr/home/emeewis/contrib/FreeBSD-HEAD/usr.bin/kdump/../../sys/amd64/linux32/syscalls.master 
/usr/home/emeewis/contrib/FreeBSD-HEAD/usr.bin/kdump/linux_syscalls.conf
sh /usr/home/emeewis/contrib/FreeBSD-HEAD/usr.bin/kdump/mksubr 
/usr/obj/usr/home/emeewis/contrib/FreeBSD-HEAD/tmp/usr/include | sed -n 
's/^\([a-z].*)\)$/void \1;/p' >kdump_subr.h
echo "int nlinux_syscalls = sizeof(linux_syscallnames) / 
sizeof(linux_syscallnames[0]);"  >> linux_syscalls.c
env MACHINE=amd64 CPP="cpp"  sh 
/usr/home/emeewis/contrib/FreeBSD-HEAD/usr.bin/kdump/mkioctls print 
/usr/obj/usr/home/emeewis/contrib/FreeBSD-HEAD/tmp/usr/include > ioctl.c



More information about the freebsd-current mailing list