Making libcxx compile with gcc 4.6.4

Howard Hinnant hhinnant at apple.com
Fri Nov 22 12:32:31 PST 2013


On Nov 21, 2013, at 11:02 AM, Marshall Clow <mclow.lists at gmail.com> wrote:

> On Nov 21, 2013, at 7:34 AM, Yaron Keren <yaron.keren at gmail.com> wrote:
> 
>> Compiling libcxx with gcc 4.6.4 (MingW) produces these errors:
>> 
>> type_traits:3280:31: error: expected primary-expression before 'decltype'
>> type_traits:3280:29: error: expected ';' at end of member declaration
>> 
>> memory:2415:49: error: function 'std::__1::default_delete<_Tp>::default_delete()' defaulted on its first declaration must not have an exception-specification
>> memory:2435:49: error: function 'std::__1::default_delete<_Tp []>::default_delete()' defaulted on its first declaration must not have an exception-specification
>> 
>> the attached patch defines _LIBCPP_HAS_NO_ADVANCED_SFINAE and _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS for gcc version < 4.7, making the library compile with gcc 4.6.4.
>> 
>> Yaron
> 
> I have no problems with the contents of this patch, but I think it’s time to ask a different question:
> 
> What compilers are we willing to support for libc++?
> Do we care about gcc 4.6? 4.5? 4.4? 4.3? 4.2? 4.1?
> Is anyone testing with these compilers?

Imho we should not be supporting compilers for which no one is using libc++.  Every additional compiler supported adds additional complexity to the libc++ code base.  It isn't cost-free.

I think a rationale for every supported compiler needs to be made.  We should know why we're supporting a compiler.

Howard





More information about the cfe-commits mailing list