On Aug 23, 2013, at 5:06 AM, David Chisnall wrote:

> On 23 Aug 2013, at 11:42, Julian Elischer <jul...@freebsd.org> wrote:
> 
>> no, I believe we have said that 10 would ship with clang by default. NO 
>> mention was made about gcc being absent, and I am uncomfortable with taking 
>> that step yet. Having gcc just present, will not hurt you..  even after it 
>> is gone we will  need to support those who will be replacing clang with 
>> newer versions of gcc in hteir own products.
> 
> The plan is not to delete gcc from the tree, it is to disable building gcc by 
> default when clang is the system compiler.  If you are building products then 
> you are perfectly at liberty to set WITH_GCC=yes in your src.conf.
> 
> Our gcc is from 2007.  It has no C11, no C++11 support.  It has bugs in its 
> atomic generation so you can't use it sensibly without lots of inline 
> assembly (which it doesn't support for newer architectures) for multithreaded 
> things.
> 
> Our libstdc++ is ancient and doesn't work with modern C++ codebases.  Putting 
> them in the base system means that people will use them.  If anyone wants 
> them to remain, then speak now and this will be taken as your volunteering to:
> 
> - Maintain our forks of both gcc and libstdc++
> - Handle every single PR that is filed by people using these
> 
> If you are willing to do this, then that's great.  If not, then you are 
> asking other people to support ancient codebases that they are not using.

Well, it isn't quite that cut and dried.

The date that gcc is from is not relevant. It works today for most of the code 
out there. True, it doesn't have the latest features that a small fraction of 
the code needs, but it works well enough. And it also needs to be there for 
some upgrade paths. There's a use for gcc, and it will likely be needed for 
these paths. As such, it has to work. Doesn't matter if it is built by default 
or not, it simply has to keep working as well as it has been working for the 
past 5 years to fill these roles. For these tasks the nice C++ things simply 
don't matter or aren't relevant. c11 features can't be put into the base for 
some time still because of the issues on other architectures.

We *HAVE* to have gcc on the other architectures. clang simply isn't ready for 
MIPS, and has several outstanding problems on ARM. While work is ongoing in 
these areas, clang simply won't be in as good a shape for !x86 as it is for x86 
in the 10.0 time frame.

So even if gcc is turned off by default in 10 on x86, it still has to work at 
least well enough to build the system and bootstrap clang. Turning it off by 
default or on by default doesn't change this, and the feature set that is used 
in 10 will basically be frozen soon, and the non-x86 architectures will require 
the MI parts continue to work. I don't see much decay that can happen in the 
x86MD parts that would break it...

Warner
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to