Hello, my name is Ikey Doherty. I am the founder of the SolusOS Linux Distribution. With SolusOS 2 we have decided to create our own base from scratch, using the PiSi package manager. After many repository revisions, it soon become apparant that GCC (4.7.2 in this instance) is dog-slow. Out of pure curiosity I attempted to rebuild packages using Clang. Clang had been pulled in as a dependency earlier on (due to mesalib's use of llvm) and I'd paid little attention to it. How foolish :) Quite simply it is the fastest compiler I have ever seen. One fact that never seems to be mentioned is that by using clang as the compiler, ./configure scripts run infinitely faster than when run with GCC. Obviously this is due to the test binaries being built to test various compiler features. In a word: Stunned. So I tried building various other components with Clang. Notable (and well known) failures include GLibc and the kernel. I find it more insulting that the standard components put forth by GNU (such as glibc) rely on their own non-standard extensions. Simply put: If you want to use one, you must use all. The case extends to binutils, gcc, etc. So, mild rant aside.. I'd like to make it known that I intend to build the vast majority of the SolusOS 2 software repository using the Clang compiler. We'll literally use a helper import inside the build files to switch each packager over to Clang/LLVM. My greatest joy will be when the entire repository is built using Clang, with no dependency on GNU/GCC extensions. This ties in more with my vision of vanilla software. Last but not least, thank you for Clang/LLVM. It's one of the most inspired tools I've used in a long time, and for that I'm grateful. - Ikey Doherty SolusOS Founder (http://www.solusos.com)
On Sat, Mar 30, 2013 at 5:46 AM, Ikey Doherty <ikey at solusos.com> wrote:> So I tried building various other components with Clang. Notable (and well > known) failures include GLibc and the kernel. I find it more insulting that > the standard components put forth by GNU (such as glibc) rely on their own > non-standard extensions. Simply put: If you want to use one, you must use > all. The case extends to binutils, gcc, etc. >Mainline Linux and glibc are likely to depend on GCC for the foreseeable future, but you may be interested in investigating the LLVMLinux project, which has a fork of the kernel that compiles with clang: http://llvm.linuxfoundation.org/index.php/Main_Page -Joe -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130330/70afd1c4/attachment.html>
On 30/03/13 15:30, Joe Groff wrote:> On Sat, Mar 30, 2013 at 5:46 AM, Ikey Doherty <ikey at solusos.com > <mailto:ikey at solusos.com>> wrote: > > So I tried building various other components with Clang. Notable > (and well known) failures include GLibc and the kernel. I find it > more insulting that the standard components put forth by GNU (such > as glibc) rely on their own non-standard extensions. Simply put: > If you want to use one, you must use all. The case extends to > binutils, gcc, etc. > > > Mainline Linux and glibc are likely to depend on GCC for the > foreseeable future, but you may be interested in investigating the > LLVMLinux project, which has a fork of the kernel that compiles with > clang: http://llvm.linuxfoundation.org/index.php/Main_Page > > -JoeThank you Joe, definitely looks like something I'll be wanting. I'll get a clean sysroot put together and try that one out in Qemu. I guess the easiest compromise would be to resort to GCC only when absolutely required, meaning over the lifetime of SolusOS 2 we could wean out GCC-built packages and replace them with Clang-built ones. With that in mind, at least you'll gain a new set of testers for feedback and bug reporting with Clang/llvm :) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130330/a7c32cad/attachment.html>