Re: RFT: Please help testing the llvm/clang 3.5.0 import

From: Warner Losh <imp_at_bsdimp.com>
Date: Thu, 18 Dec 2014 07:21:41 -0700
> On Dec 18, 2014, at 6:02 AM, Dimitry Andric <dim_at_freebsd.org> wrote:
> 
> On 18 Dec 2014, at 02:17, NGie Cooper <yaneurabeya_at_gmail.com> wrote:
>> 
>> On Fri, Nov 28, 2014 at 1:03 PM, Dimitry Andric <dim_at_freebsd.org> wrote:
> ...
>>   As a request to speed up the build process further,
>>   - Would it be [easily] possible in the clang35 branch to bootstrap
>> the compiler for a specific architecture? The bootstrap / cross
>> compiler for instance always builds N targets instead of building just
>> the desired TARGET/TARGET_ARCH combo.
> 
> It's not very easy, at least not without breaking various parts of our
> fragile build system, but I surely want to put something like this on
> the TODO list for *after* the import has completed.
> 
> The branch is making progress right now, and I would not want to
> complicate matters further by introducing yet another tricky feature. :)

The build system isn’t so much the issue, but you wind up with
files that refer to all the architectures.

But this is  a request for a new feature, not quite in scope for a compiler
upgrade.

>>   - Could a "MK_CLANG_ALL_TARGETS" or something similar option be
>> added to src.opts.mk to fine tune this process for those of us who
>> don't want to build a cross-compile toolchain every iteration for our
>> target MACHINE/MACHINE_ARCH?
> 
> I would be fine with something like this, as long as it is turned off by
> default, or if it is only used for the bootstrap stages.  It is actually
> an extremely useful feature of clang that you can target multiple
> architectures with one compiler binary.

This is a new feature. Various people have tried in the past to implement
it and compiling just the mips files on mips is straight forward. However,
convincing clang to not reference the other architectures requires more
sophistication than we currently have in the clang build process.

> A more interesting case would be to remodel the build system so it can
> use one toolchain (external, or pkg-ng'd, maybe?) for building an entire
> universe.  With clang, that should be relatively easy to do.

Another useful new feature. The hard part with this is getting all the fiddly
bits in the tree that depend on default CC producing proper binaries to
cooperate.. Doable, but that’s a lot of universe builds. And today it isn’t
very practical because sparc64 and mips are broken...

Warner

Received on Thu Dec 18 2014 - 13:49:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:54 UTC