Date: Sat, 6 Sep 2014 08:41:23 -0600 From: Warner Losh <imp@bsdimp.com> To: David Chisnall <theraven@FreeBSD.org> Cc: "freebsd-toolchain@freebsd.org" <freebsd-toolchain@freebsd.org>, "conrad.meyer@emc.com" <conrad.meyer@emc.com>, Garrett Cooper <yaneurabeya@gmail.com> Subject: Re: Building clang in buildworld as part of the bootstrap process -- is it really necessary? Message-ID: <95AE2942-2EB8-4431-8B87-2304610DB262@bsdimp.com> In-Reply-To: <4AF47B56-109E-46A3-8EC4-75B95E063FCF@FreeBSD.org> References: <CAGHfRMD0Tm14p%2Bv=%2B6mp89eb4TSNenPSPn92XKC2XbM8m6Ut=g@mail.gmail.com> <01C283B7-C9AF-4AE8-A192-FBC7C04D207E@bsdimp.com> <215CB3BB-BA4B-41D9-9CBF-FC0FDEE9492C@gmail.com> <4AF47B56-109E-46A3-8EC4-75B95E063FCF@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] On Sep 6, 2014, at 5:28 AM, David Chisnall <theraven@FreeBSD.org> wrote: > On 6 Sep 2014, at 06:47, Garrett Cooper <yaneurabeya@gmail.com> wrote: > >> Makes sense. I'll do some poking around and see if things could potentially be optimized with the clang build. On beefy machines it's not a big deal, but as we know on machines without a ton of memory or SSDs, it can become painful, as expected. > > The build system for clang-in-base has improved a bit so, as you say, it is now reasonably fast on beefy machines (release clang build with the upstream build system takes 2-3 minutes on a fast machine, about 10 on my laptop, the one in buildworld isn't quite as good at extracting parallelism). On slow machines, it can be quite painful. Yes. Hence the ask for a faster way to rebuild the system. > The correct solution to this problem is likely to be to start creating bootstrap-toolchain packages. This is also likely to be necessary for architectures like MIPS and PowerPC before 11 anyway, because the host compiler doesn't have the C++11 support required for bootstrapping a newer LLVM and clang. We can work around that quite easily if we have package for the bootstrap toolchain (possibly cross-compiled from an x86 machine). I’m not sure which problem this solves. If you are cross building, then you already are likely running on amd64 which has a good compiler. If you are doing a native build, then everybody but mips and armeb already have clang support in the base. For those what you do with clang is irrelevant, so long as gcc is around. When gcc is kicked out of the base, we’ll need to have an external toolchain story for those platforms anyway. That story might include generation of binary packages, but it will also need to include building of those packages easily. Likely without buildworld, or a modified variant that groks how to bootstrap a sysroot. Cross building for ports is getting close, we may be able to use it to generate packages for nonx86 faster than native (recent successful full builds are taking only 5x as long). I guess I’m saying that while packages may be necessary, they aren’t sufficient unless they are easily reproduced. All this also needs to be well documented, or we’re going to go off the rails trying to support it. Warner [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJUCx0TAAoJEGwc0Sh9sBEAcPUP/0egJ1JBuCvxj95YlIalVnSk gvI/LXGyyFxIIaOpG52vyVZV8jMDaPrivYO0riff6vFM0lqmMhKuQvvKLEczNy6T w+riZ4cIBcDV7irS2plq5JNgoekKA3W/9r3VVEQhhcEc/yNdzFIJvPZcvRjA+h40 tUeY+X0tM0019x1FZbqqfYWx0VGKn9cpMdzxmvQX0iogAsTlO+LzCRNxZjqf61Ky l3/Bn9uMVQ1zg+B6h0bC/hJ/E7WG7AtLlO0tebhx+BG1P8tersvRkdFP4/Tc9GGY 1aiOSrxcczxR3ahxrNo2V0FtqlvpKJDi3VJG9nmFA/IWqbls3sEkVhmeVC8GIx10 kw60VjjZg5ng8SdZShKlte9x1Q0CU8PjCMkJFIaj2No1O1GEhwNE6aYud91asNPb RlOurfR/nPB4naht9QZ5FbOR+e8z1Ulpqc5uQo2LqXwxzIoZyM+naNSie6kmjNqt xv7GhOdV6K70Aqd6azi7qsrZMK8Fy22MJuF2d+FDwf5oQi+uIzJKZlHff5NPlWTX OyUAbL1qFOw8FPh67Ps8tQXJNVHRVWlTyyCsnV62tZKnubFxK+RBnGp/uV4T6dt2 RTZGXSQDY99ht8kCfvqT/vinSyai2Yq2yhl/zLXy0KNDzG5SIuIaQLGxU4Z1DI6b KUiNlA/3B9gP3jech1YE =bwVQ -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?95AE2942-2EB8-4431-8B87-2304610DB262>
