Making libcxx compile with gcc 4.6.4

Yaron Keren yaron.keren at gmail.com
Thu Nov 21 07:34:50 PST 2013


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131121/a957abef/attachment.html>
-------------- next part --------------
Index: include/__config
===================================================================
--- include/__config	(revision 194869)
+++ include/__config	(working copy)
@@ -389,9 +389,7 @@
 #endif
 
 #if _GNUC_VER < 404
-#define _LIBCPP_HAS_NO_ADVANCED_SFINAE
 #define _LIBCPP_HAS_NO_DECLTYPE
-#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
 #define _LIBCPP_HAS_NO_DELETED_FUNCTIONS
 #define _LIBCPP_HAS_NO_UNICODE_CHARS
 #define _LIBCPP_HAS_NO_VARIADICS
@@ -402,6 +400,11 @@
 #define _LIBCPP_HAS_NO_NULLPTR
 #endif
 
+#if _GNUC_VER < 407
+#define _LIBCPP_HAS_NO_ADVANCED_SFINAE
+#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
+#endif
+
 #endif  // __GXX_EXPERIMENTAL_CXX0X__
 
 #define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { namespace _LIBCPP_NAMESPACE {


More information about the cfe-commits mailing list