Developing are reaching a point where the mainline LLVM/Clang compiler in an "out of the box" configuration can compile the mainline Linux kernel with only a few patches against the kernel's source tree. This summer's release of LLVM/Clang 3.3 should be a big milestone...

Seriously, I had to support GCC once, and I will never touch that POS again. How do you people live with tools like that?

04-19-2013, 10:35 AM

Ericg

Quote:

Originally Posted by gamerk2

Congrats on finally getting debug tools Linux!

Seriously, I had to support GCC once, and I will never touch that POS again. How do you people live with tools like that?

Limited choice?

04-19-2013, 11:37 AM

curaga

Quote:

Originally Posted by gamerk2

Congrats on finally getting debug tools Linux!

Seriously, I had to support GCC once, and I will never touch that POS again. How do you people live with tools like that?

Much better than when I had to use Visual Studio and XCode, thank you :)

04-19-2013, 11:07 PM

DeepDayze

I would call LLVM/Clang complete ONLY when it compiles the Linux kernel without the need for any patches to the kernel code as well as the resulting finished binary behaving the same way as the gcc-compiled kernel binaries without unexplained crashes or bugs. The kernel should be written portably so ALL compilers can compile it cleanly and any gcc-isms should be refactored.

04-20-2013, 02:37 AM

archibald

Quote:

Originally Posted by DeepDayze

I would call LLVM/Clang complete ONLY when it compiles the Linux kernel without the need for any patches to the kernel code...

I think the reason it doesn't compile the kernel at the moment is due to gcc-isms, and that the patches simply remove those/replace them with something portable.

04-20-2013, 10:41 AM

DeepDayze

Quote:

Originally Posted by archibald

I think the reason it doesn't compile the kernel at the moment is due to gcc-isms, and that the patches simply remove those/replace them with something portable.

Ahh, that makes sense...removing the gcc-isms and replacing them with code more in line with the standards is a good thing and that alone should help reduce bugs. Most of those gcc-isms are mainly workarounds for some gcc bugs common in older gcc's so rewriting those sections of code portably should help clean that up.

04-20-2013, 03:53 PM

curaga

Or they were extensions requested by kernel devs to have more control over the resulting code, which is a good thing. Haven't looked at the patches to see whether any such code is removed or if it's only portability changes.

04-20-2013, 04:41 PM

smitty3268

Quote:

Originally Posted by DeepDayze

Ahh, that makes sense...removing the gcc-isms and replacing them with code more in line with the standards is a good thing and that alone should help reduce bugs. Most of those gcc-isms are mainly workarounds for some gcc bugs common in older gcc's so rewriting those sections of code portably should help clean that up.

The VLAIS (Variable Length Arrays In Structs) makes the code a lot more readable and understandable, which likely reduces the number of bugs. The kernel devs have already objected to removing them for LLVM. It isn't clear what the final solution will be, because it doesn't sound like LLVM is interested in supporting them, either.