Linked by Thom Holwerda on Wed 7th Nov 2012 23:50 UTC, submitted by Joel Dahl
FreeBSD "I've made clang the default on x86 systems. There will probably be a few bumps as we work out the last kinks including a ABI issue for i386 system libraries, but the transition is expected to be fairly smooth for most users."
Thread beginning with comment 541364
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: why?
by ideasman42 on Thu 8th Nov 2012 05:15 UTC in reply to "RE: why?"
ideasman42
Member since:
2007-07-20

Sure, but all things equal - why would you switch if clang misses OpenMP and can't compile some C++ apps (inkscape for example fails, and some areas need non-trivial re-working to make it compatible).

Still, hopefully being default in BSD gives some incentive for clang to become as complete as GCC.

Reply Parent Score: 3

RE[3]: why?
by kwan_e on Thu 8th Nov 2012 05:25 in reply to "RE[2]: why?"
kwan_e Member since:
2007-02-18

Sure, but all things equal - why would you switch if clang misses OpenMP and can't compile some C++ apps (inkscape for example fails, and some areas need non-trivial re-working to make it compatible).

Still, hopefully being default in BSD gives some incentive for clang to become as complete as GCC.


As I understand it, BSD is written in C, so other applications that can't be compiled with Clang can use GCC.

Reply Parent Score: 3

RE[3]: why?
by kargl on Thu 8th Nov 2012 07:12 in reply to "RE[2]: why?"
kargl Member since:
2007-10-16

All things are not equal. clang is replacing the version of gcc in the base system, which is version 4.2.1 (plus a few patches). gcc 4.2.1 does not have openmp support, and it is missing knowledge about newer cpus.

From a practical standpoint, FreeBSD cannot adopt newer versions of gcc because of the GPLv3 unless FreeBSD wants to alienate the commercial vendors that base their products on FreeBSD and who contribute back to the project.

Reply Parent Score: 4

RE[3]: why?
by phoenix on Fri 9th Nov 2012 20:41 in reply to "RE[2]: why?"
phoenix Member since:
2005-07-11

This is a line of reasoning that I just don't understand.

The "base compiler" is used ... to compile the "base OS". The only features the "base compiler" needs to have are those that allow it to ... compile the "base OS". Thus, whether or not Clang/LLVM support OpenMP, every since C++ extension/feature, etc is moot and completely orthogonal to its uses as the "base compiler".

If you need OpenMP support, install the latest version of GCC from the ports tree, and use that for your OpenMP-using projects.

If you need specific C++ features, install the latest version of "Compiler X" from the ports tree, and use that for your C++ projects.

And so on.

If the "base compiler" supports everything you need in your projects, great. Use it. If not, there are many, many, many different compilers in the ports tree. Pick the one that suits your needs, and carry on.

Reply Parent Score: 2