SolusOS 2 + Clang

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 :slight_smile: 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)

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

Thank 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 :slight_smile: