[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#790358: please don't depend on clang-3.4



Hi!

Esa Peuha wrote:
> kfreebsd-11 currently depends on clang-3.4 which is going to be
> removed (see bug #783516), so please update the dependency to a
> newer version. Also, if possible, please do the same for kfreebsd-10.

Upstream already builds kfreebsd-11 using clang-3.6, so we should
change it to use that anyway.  That will be straightforward.

For kfreebsd-10 however, upstream stable/10 branch still uses clang-3.4.
If we have to choose between clang-3.5 or 3.6, there is a risk we hit
some unfixed run-time issue, due to new optimisations or a compiler bug.

Both clang-3.5 and 3.6 as packaged in Debian, are already able to build
kfreebsd-10.  The compiled kernels booted successfully at least within
KVM, performed another kernel build, and appeared stable.

Successive builds with clang-3.6 produced identical output, so there is
no sign of any regression relating to reproducibility of builds.

Generated code is very different going from clang-3.4 to 3.5;  lots
of re-ordering of instructions, likely due to new optimisations.  The
changes from 3.5 to 3.6 seem to be fewer.  Total size of the
compiled kernel has increased slightly with each version:

kernel built with clang-3.4: 17775248 bytes
kernel built with clang-3.5: 17865504 bytes
kernel built with clang-3.6: 17911544 bytes

clang-3.5 is in kfreebsd-jessie whereas clang-3.6 is not;  that might
have been a concern for backporting, except we don't use the official
backports suite, so that maybe isn't a relevant issue for us.

Since kfreebsd-11 is built upstream with clang-3.6, we have a chance of
backporting fixes from there if we ever run into compile or run-time
issues with future 10.x kernels.

So I think we may want to build kfreebsd-10 using clang-3.6, to keep
consistency with kfreebsd-11, and so that we rely on fewer clang
releases to be maintained simultaneously in Debian.

Regards,
-- 
Steven Chamberlain
steven@pyro.eu.org

Attachment: signature.asc
Description: Digital signature


Reply to: